自然なテキストの日付への参照を見つける方法
質問
私がやりたいことは、生の自然なテキストを解析し、日付を記述するすべてのフレーズを見つけることです。
日付へのすべての参照を持つかなり大きなコーパスを持っています:
I met him <date>yesterday</date>.
Roger Zelazny was born <date>in 1937</date>
He'll have a hell of a hangover <date>tomorrow morning</date>
.
日付フレーズを解釈したくない、それらを見つけるだけです。彼らが日付が無関係であるという事実は、(実生活では日々ではありませんが、詳細で退除したくない)、基本的にはそれは可能な限り開かれたセットです。値自体の文法は文脈のないものとして近似することができますが、手動で、そして複雑さを増すのは非常に複雑です。誤検知を回避するのはますます難しくなります。
これが長いショットであることを知っているので、私はそこに存在する箱の解決策が存在することを期待していませんが、どの技術や研究が潜在的に使用することができますか?
解決
学術界および産業において使用される一般的なアプローチの1つは、条件付きランダムフィールドに基づいています。基本的には特別な確率的モデルである、あなたはマークアップされたデータで最初にそれを訓練してから、特定の種類のエンティティに与えられたテキストでラベルを付けることができます。
スタンフォード自然言語処理グループからのシステムの1つを試してみることができます。名前付きのスタンフォードエンティティ認識
ツールをダウンロードするときには、いくつかのモデルがあり、最後のものが必要です。
Stanford Nerに含まれているCONLLのために訓練された4クラスのモデルです。 MUC用に訓練された7クラスモデル、および両方で訓練された3つのクラスモデル これらのクラスセットの交差点のデータ・セット
3クラスの場所、人、組織
4クラスの場所、人、組織、その他
7クラスの時間、場所、組織、人、お金、パーセント、日付
アップデート。実際にそのツールを試すことができますオンライン。 muc.7class.distsim.crf.ser.gz
分類子を選択して、いくつかのテキストを日付で試してください。 「昨日」を認識していないようですが、例えば「20世紀」を認識しています。最後に、これはCRFトレーニングの問題です。
他のヒント
CRFを留めておくことは、人間の注釈付きデータを訓練し、必要なデータを必要とするのにかなり遅いため、自分でやることは簡単ではありません。この別の例では現在の学術研究とはあまり一般的ではありません。