3

私は、出版物のコンテンツが、その地域の人々からの関連する公開されたつぶやきによって補強されるプロジェクトを検討しています. しかし、関連するツイートをプログラムで見つけるにはどうすればよいでしょうか? 自然言語の意味を表す構造を生成することが NLP の聖杯であることはわかっていますが、少なくともそれを少し絞り込むために使用できるツールがあるのではないでしょうか?

または、ハッシュタグを使用することもできます。しかし、それにはユーザーに代わってより多くの作業が必要です。私は Twitter にあまり詳しくありません。ほとんどの人はハッシュタグを (小規模な問題であっても) 使用しますか? それともハッシュタグに頼ると、データの大部分が切り捨てられるでしょうか?

また、Facebook のステータスを取得することにも興味があります (もちろん、投稿者の許可を得て)。Facebook でハッシュタグを使用することはほとんどありません。

単純なキーワード検索を使用してフィールドを大雑把に絞り込むこともできますが、その場合、コンテンツと一緒に実際に投稿するツイートを決定するために人間の介入が必要になる可能性が高くなります.

アイデア?これは以前に行われたことがありますか?

4

3 に答える 3

5

コンテンツに関連するツイートを見つけるには、2 つの簡単な方法があります。1 つ目は、これを教師付きドキュメント分類タスクとして扱うことです。これにより、事前に決められた特定のトピック ラベルのセットでツイートに注釈を付けるように分類子をトレーニングします。次に、ラベルを使用して、拡張するコンテンツに適したツイートを選択できます。事前に決められた一連のトピックを使用したくない場合は、別のアプローチとして、コンテンツとのセマンティック オーバーラップに従ってツイートにスコアを付けるだけです。次に、セマンティック オーバーラップが最も多い上位n 個のツイートを表示できます。

教師付き文書の分類

教師付きドキュメント分類を使用するには、使用するトピックのセットでラベル付けされたツイートのトレーニング セットが必要です。例えば、

つぶやき: NBA ファイナルは衝撃的だったラベル:スポーツ
つぶやき: Google 社員が Ruby を使用できるようになりました! レーベル:プログラミング
つぶやき:ランチを食べるレーベル:その他

ツイートに手動でトピックのラベルを付けずにトレーニング データを収集したい場合は、ハッシュタグを使用してトピック ラベルをツイートに割り当てることができます。ハッシュタグはトピック ラベルと同じにすることも、特定のハッシュタグを含むツイートを目的のラベルにマッピングするルールを作成することもできます。たとえば、 または のいずれ#NFLかでタグ付けされたツイート#NBAには、すべて のラベルを割り当てることができますsports

トピックごとにラベル付けされたツイートを取得したら、任意の数の既存のソフトウェア パッケージを使用して、新しいツイートにラベルを割り当てる分類子をトレーニングできます。利用可能なパッケージには次のものがあります。

セマンティック オーバーラップ

コンテンツとのセマンティック オーバーラップを使用してツイートを検索すると、ラベル付けされたトレーニング セットが不要になります。コンテンツとスコアリング対象のツイートとの間のセマンティック オーバーラップを推定する最も簡単な方法は、ベクトル空間モデルを使用することです。これを行うには、ドキュメントと各ツイートを、ベクトルの各次元が単語に対応するベクトルとして表します。各ベクトル位置に割り当てられた値は、その単語が文書の意味にとってどれほど重要であるかを表します。これを推定する 1 つの方法は、単純にその単語が文書内で出現する回数を使用することです。ただし、 TF/IDFのようなものを使用すると、より良い結果が得られる可能性があります。これは、まれな用語の重みを上げ、より一般的な用語の重みを下げます。

コンテンツとツイートをベクトルとして表現したら、コンテンツのベクトルと各ツイートのベクトルのコサイン類似度を取得することで、コンテンツとのセマンティックな類似性によってツイートにスコアを付けることができます。

これを自分でコーディングする必要はありません。ベクトル空間モデルを使用してドキュメントの類似性をスコアリングするVectorClassifierクラスを含む Classifier4J のようなパッケージを使用するだけです。

より良いセマンティック オーバーラップ

次元ごとに 1 つの項を使用するベクトル空間モデルで遭遇する可能性のある問題の 1 つは、ほぼ同じことを意味する異なる単語を適切に処理できないことです。たとえば、そのようなモデルは、 と の間The small automobileに類似性がないことを示しA little carます。

相互に比較されるドキュメントのより抽象的な表現を構築するために使用できる、潜在意味分析 (LSA)潜在的ディリクレ割り当て (LDA)などのより洗練されたモデリング フレームワークがあります。このようなモデルは、単純な単語の重複ではなく、単語の根底にある意味の重複に基づいてドキュメントをスコアリングするものと考えることができます。

ソフトウェアに関して言えば、Semantic Vectorパッケージは、ドキュメントの類似性のためのスケーラブルな LSA のようなフレームワークを提供します。LDA の場合、David Blei の実装または Stanford Topic Modeling Toolbox を使用できます。

于 2010-08-20T00:44:48.137 に答える
0

素晴らしい質問です。ツイッターの場合、ハッシュタグを使用するのが最善の策だと思います。それ以外の場合は、言語分析を行い、ユーザーの入力/フィードバックに基づいて時間の経過とともに改善するアルゴリズムを作成するか、既存のアルゴリズムを見つける必要があるためです。

Facebookの場合、bingがしばらく前に実装したことを行うことができます。この記事で説明したように、http: //www.socialtimes.com/2010/06/bing-adds-facebook-and-twitter-features-steps-up-social-services/

たとえば、「NBA Finals」を検索すると、地元のテレビ局からの投稿を含む、Facebook のファン ページ コンテンツが返されます。したがって、NBA 関連のコンテンツを拡張しようとしている場合は、Bing が提供するのと同様の検索を行うことができます。公開されているファン ページのコンテンツを、スパイダーが検索エンジンのインデックスに登録する方法で検索します。私は開発者ではないので、複雑なことはわかりませんが、それが可能であることは知っています。

また、「すべてのユーザー」に公開しているユーザーからの人気のある共有リンクを表示して、すべての非ファン ページ コンテンツについて集計することもできます。これが「すべての人」に公開されていることや「人気がある」ことに限定されているかどうかはわかりませんが、そうなると思いますが、再確認してください.

お役に立てれば

于 2010-08-15T06:09:22.247 に答える
0

NLP の問題はアルゴリズムではなく (それは問題ですが)、問題はリソースです。使用できるオープン ソースの浅い解析ツール (目的を達成するために必要なツールはこれだけです) がありますが、数千または数百万のツイートを解析するには、かなりのコンピューター時間がかかります。

一方で、あなたが言ったように、すべてのツイートにハッシュタグがあるわけではなく、それらが関連するという約束もありません.

おそらく、キーワード検索を組み合わせていくつかの可能性 (キーワード密度が最も高いもの) を除外し、より深いデータ分析を使用して上位 1 つまたは 2 つを選択することができます。これにより、コンピューターのリソースが最小限に抑えられます。関連ツイートを取得できます。

于 2010-08-15T07:04:09.470 に答える