まず、①「文章のデータ」を持っていて、②「与えられた文章のデータ」と③「最も近い」ものを①から選ぶ機能を作るには、①「文章のデータ」と③「文章間の近さを返してくれる関数」が必要になります。機械学習というのは基本的に、①「文章データ」と②「与えられた文章データ」と④「正解データ」から③「文章の近さを返してくれる関数」を作ってくれるアルゴリズムのことです。このアルゴリズムを適切に使うには大量の①②④のデータが必要になります。また、ディープラーニングとかを使わないのであれば、⑤どの「特徴」を見て、学習させるかを決める必要があります。
たとえば、①②の文章データからそれぞれ、⑤どんな単語が含まれているかという特徴を抜き出して、それぞれの単語に⑥「重要性」という量を与えて、⑥の関数として③を作ります。③の結果と、④正解データとを比べて、より正解率の高くなるように、⑥「重要性」の高さを学習させる、というアルゴリズムが典型的な機械学習です。
英語の例で言えば、aやtheといった単語よりは、Thisやappleなどのより具体的な単語が一致しているほうが⑤重要だと考えられます。
③「文章間の近さを返してくれる関数」にどのくらいの精度を求めているのかは分かりませんが、自力でそういう機能でちゃんとしたやつを実装しようと思ったら、機械学習で対処すべき問題だと思います。しかし、自力で作るのは結構たいへんだと思います。微積分・線型代数と確率・統計、最適化の知識は必須な上に学習データの収集がめんどくさいです。
③「文章間の近さを返してくれる関数」はかなり需要のありそうなで汎用性の高い関数なので、ググれば落ちてるかもしれませんし、Azule Machine Learningというのは多分機械学習の知識がなくてもそういった関数を使えるようにしたものだと思います。今、ちょっと調べた限りだと、学習データは自分で用意する必要がありそうですが・・・
ちなみに私は、機械学習を使った何かを実際に作ったことはないのでご了承を。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。