Duolingo は、言語学習において世界でもっとも人気のある方法です。なによりも、完全に無料です。

https://www.duolingo.com/ekins01

日本語の回答で文末に「です」「ます」などをつけないと誤答になったり普通の日本語が使えない問題ですが正規表現つかえませんか?

たとえば

英文の翻訳で 「明日は金曜日」などと入力すれば間違いになる問題ですが

正解を「明日は金曜日(です|になります|だ)」というような方法でプログラム書いてると思いますが

これを([ぁ-ん]*| null)にするとどうですか?

これなら「明日は金曜日」でも 「明日は金曜日だ」でも 「明日は金曜日です」 「明日は金曜日だわさ」 「明日は金曜日!」 「明日は金曜日っす」でも正解になります。

入力が面倒なので一文字でも減らしたいという要望があるのでこういう細かいところ快適にしてもらえれば楽しく学習できるのになあと思います。

3年前

2コメント


https://www.duolingo.com/kinketu

日本語では否定語が最後に来ることが多いので,なんでもかんでも正解にするのはよくないのでは? 「明日は金曜日ではない」を正解にしてしまうのは誤りなので.

3年前

https://www.duolingo.com/Kippis
Kippis
  • 21
  • 16
  • 15
  • 9
  • 8
  • 5

ご提案ありがとうございます。しかしながら正規表現を使えないのには3つの理由がございます。

1つは kintetu さんが既にご指摘している通りで、日本語は文末にいくらでも言葉を継ぎ足せてしまうため、否定形はもちろん、「明日は金曜日かも」や「明日は金曜日なの」のような明らかにニュアンスを変えてしまう表現も可能になってしまいます。

2つ目は「正規表現は誰もが知っているわけではない」という問題です。4月の進捗を報告した際( https://www.duolingo.com/comment/8400658 )にも触れたことですが、Duolingo のコースは様々なバックグラウンドを持つボランティア(私含む)によって運営されており、語学の知識は持っていても正規表現は知らない方も多いはずです。実は、上記リンクで触れているコース貢献者のサミットでも似たような提案があったのですが、貢献者の資格を狭めてしまうおそれがあるため否定されていました。

最後に、一つの英文に対して登録できる和訳の数は3千文までという技術的制約が大きくのしかかっています。例えば "Tomorrow is Sunday." という例文には(Tomorrow is Friday は存在しなかったと思います)、[明日/あす]は日曜[日/][です/だ/である/]。というフォームが用意されているのですが、これで1文なのではなく、展開時に生成される16個の文章がこの場合はカウントされます。従って無限に文章が作れる正規表現は現在の技術的仕様では使用不可です。また、そうでなくても少し複雑な文章になると3千文制限を軽く超えてしまうので、「です」や「だ」よりも頻度が少ない「である」や頻度が少ない上に不自然な表現になることがある無標(「です」や「だ」などを全く付けない)は切り捨てていることがあります。「〜だわさ」を含む回答は「正答にしろ」と報告をいただいたことがありましたが、上記の事情により却下しております。

「入力が面倒なので一文字でも減らしたい」という気持ちは理解できると共に、ちょっと待ったと言いたくなる点もあります。本来つけるべき「は」や「を」などの助詞を省略して「正答にしてくれ」とレポートされる方が多いのですが、日本語として間違っていては受理できませんし、学校のテストでも大抵は×になるのではないでしょうか。「だ」や「です」の省略に関してはなるべく寛容になるよう心がけていますが、普通だったら何か付けるのになあと思うことが多々あります(「明日は金曜日」は問題ないのですが)。

楽しく、手軽に Duolingo を使っていただければ幸いですが、やっていることはあくまで学習なのですから、変な所で楽をしようと思わずに正確さを心がけていただきたいと思います(その上で採点が不正確だという箇所があればどんどん報告フォームからレポートをお寄せください)。

3年前