私が作成しているアプリに、ニュース記事をグループ化する機能を追加したいと思います。異なるソースからの同じトピックに関するニュース記事を同じグループにグループ化したい。たとえば、CNNとMSNBCのXYZに関する記事は同じグループに含まれます。ある種のファジー論理の比較だと思います。技術的な観点からこれを行うにはどうすればよいですか?私のオプションは何ですか?まだアプリを起動していないので、使える技術に制限はありません。
助けてくれてありがとう!
私が作成しているアプリに、ニュース記事をグループ化する機能を追加したいと思います。異なるソースからの同じトピックに関するニュース記事を同じグループにグループ化したい。たとえば、CNNとMSNBCのXYZに関する記事は同じグループに含まれます。ある種のファジー論理の比較だと思います。技術的な観点からこれを行うにはどうすればよいですか?私のオプションは何ですか?まだアプリを起動していないので、使える技術に制限はありません。
助けてくれてありがとう!
この問題は、機械学習の観点から、いくつかのサブ問題に分解されます。
まず、ニュース記事のどのプロパティに基づいてグループ化するかを決定する必要があります。一般的な手法は、「単語バッグ」を使用することです。これは、ストーリーの本文またはタイトルに表示される単語のリストです。「the」、「because」など、意味を持たない一般的な英語の「ストップ ワード」を削除するなど、追加の処理を行うことができます。ポーター ステミングを実行して、複数の単語や「-ion」などの語尾の冗長性を取り除くこともできます。この単語のリストは、各ドキュメントの特徴ベクトルであり、類似度を測定するために使用されます。html マークアップを削除するには、前処理が必要になる場合があります。
2 番目に、類似性メトリックを定義する必要があります。類似したストーリーは、類似性が高くなります。バッグ オブ ワード アプローチに沿って進むと、2 つのストーリーは、同じような単語が含まれている場合に似ています (ここではあいまいにしています。試すことができるものがたくさんあり、どれが最も効果的かを確認する必要があるためです)。
最後に、類似度メトリックに基づいてストーリーをグループ化する k-means クラスタリングなどの従来のクラスタリング アルゴリズムを使用できます。
要約すると、ニュース記事を特徴ベクトルに変換します -> この特徴ベクトルに基づいて類似度メトリックを定義します -> 教師なしクラスタリング。
Google Scholarをチェックしてください。最近の文献には、この特定のトピックに関する論文がいくつかあると思われます。先ほど説明したこれらの多くは、ほとんどの主要言語の自然言語処理および機械学習モジュールに実装されています。
1 つの方法は、記事がリストされたときに記事にタグを追加することです。1 つのタグは XYZ です。他のタグは、記事の主題を説明する場合があります。
データベースでそれを行うことができます。各記事に無制限の数のタグを付けることができます。次に、「グループ」を 1 つまたは複数のタグで識別できます。
このアプローチは、人間が適切なタグを割り当てることに大きく依存しているため、適切な記事が検索から返されますが、記事が多すぎないようになっています。本当にうまくやるのは簡単ではありません。