11

正規表現を使用して、Twitter のストリームから一連の質問を収集し、質問の種類 ( who、what、when、whereなど) で始まり、疑問符で終わるテキストを含むツイートを選び出します。

そのため、データベースには、「誰が気にするの?」、「これは何ですか?」などの役に立たない質問がいくつか返ってきます。「バスケットボールの試合はどのくらいの頻度で行われますか?」、「ホッキョクグマの体重はどれくらいですか?」等

ただし、有用な質問にのみ関心があります。

約 3000 の質問がありますが、そのうちの ~2000 は役に立たず、~1000 は有用であり、手動でラベルを付けました。有用な質問を手動で選択する必要がないように、単純なベイズ分類器 (NLTK に付属) を使用して質問を自動的に分類しようとしています。

手始めに、質問の最初の 3 語を特徴として選んでみましたが、あまり役に立ちません。分類器は、100 の質問のうち、有用な質問として正しいと予測したのは 10% ~ 15% 程度でした。また、有用ではないと予測された質問から有用な質問を選択することもできませんでした。

質問の長さを含め、すべての単語を含めるなどの他の機能を試しましたが、結果は大幅に変わりませんでした.

機能を選択する方法や続行する方法について何か提案はありますか?

ありがとう。

4

2 に答える 2

13

いくつかのランダムな提案。

前処理ステップを追加し、、、、などthisのストップワードを削除します。aofand

  バスケットボールの戦いはどのくらいの頻度でありますか

最初にいくつかのストップワードを削除すると、

  バスケットボールの戦いの頻度

各単語のtf-idfスコアを計算します(各ツイートをドキュメントとして扱い、スコアを計算するには、ドキュメントの頻度を取得するためにコーパス全体が必要です)。

上記のような文の場合、各単語のtf-idfスコアを計算します。

  tf-idf(how)
  tf-idf(often)
  tf-idf(basketball)
  tf-idf(fight)

これは役に立つかもしれません。

分類器の追加機能を以下で試してください

  • 平均tf-idfスコア
  • tf-idfスコアの中央値
  • 最大tf-idfスコア

さらに、pos-taggerを試して、ツイートごとに分類された文を生成します。

>>>インポートnltk
>>> text = nltk.word_tokenize( "バスケットボールの戦いはどのくらいの頻度で行われますか")
>>> nltk.pos_tag(text)
[('How'、'WRB')、('often'、'RB')、('is'、'VBZ')、('there'、'EX')、('a'、'DT') 、('バスケットボール'、'NN')、('ファイト'、'NN')]

次に、pos-tagsに関連する機能を試すための追加機能がある可能性があります。

役に立つかもしれない他のいくつかの機能。詳細については、paper- qtweet(ツイートの質問を識別するための紙)を参照してください。

  • ツイートにURLが含まれているかどうか
  • ツイートにメールや電話番号が含まれているかどうか
  • !質問に続くような強い気持ちがあるかどうか。
  • ユニグラムの単語がツイートのコンテキストに存在するかどうか。
  • ツイートに他のユーザーの名前が記載されているかどうか
  • ツイートがリツイートかどうか
  • ツイートにハッシュタグが含まれているかどうか#

参考までに、 qtweetの作成者は、ランダムフォレスト、SVM、J48、ロジスティック回帰の4つの異なる分類器を試しました。それらの中でランダムフォレストが最高のパフォーマンスを示しました。

彼らが助けてくれることを願っています。

于 2013-01-15T09:13:52.600 に答える
1

試して構築できる可能性が最も高い非常に強力な機能 (可能かどうかは不明) は、問題のツイートへの返信があることです。

于 2013-01-15T20:30:58.393 に答える