6

私は、100 から 4000 語のテキスト (数百万) をたくさん持っています。テキストは、句読点と文法を使用して、書かれた作品としてフォーマットされています。すべて英語です。

問題は単純です:与えられたテキストからすべての WikiData エンティティを抽出するにはどうすればよいでしょうか?

エンティティは、固有名詞または通常のすべての名詞として定義されます。つまり、人、組織、場所、椅子ポテトなどの名前です。

これまでのところ、次のことを試しました。

  1. テキストをOpenNLPでトークン化し、事前トレーニング済みのモデルを使用して、場所組織、および通常の名詞を抽出します。
  2. 該当する場合は、 Porter Stemmingを適用します。
  3. 抽出されたすべての名詞をwmflabs-APIと照合して、潜在的な WikiData ID を取得します。

これはうまくいきますが、もっとうまくやれる気がします。明白な改善の 1 つは、関連する WikiData の部分をローカルにキャッシュすることです。これは私が計画しています。ただし、その前に、他の解決策があるかどうかを確認したいと思います。

提案?

タスクにSparkを使用しているため、質問に Scala のタグを付けました。

4

1 に答える 1

3

いくつかの提案:

  • OpenNLP と比較してスタンフォード NER を検討し、コーパスでの比較を確認してください。
  • ほとんどのエンティティ名のステミングの価値について疑問に思います
  • タスクを個別の段階に分割することで、情報を失っているのではないかと思います
  • ウィキデータは新しいものですが、タスクはそうではないため、Freebase|DBpedia|Wikipedia エンティティ認識|曖昧さ回避に関する論文を参照してください。

特に、DBpedia Spotlight はまさにこのタスクのために設計されたシステムの 1 つです。

http://static.googleusercontent.com/media/research.google.com/en//pubs/archive/38389.pdf http://ceur-ws.org/Vol-1057/Nebhi_LD4IE2013.pdf

于 2016-02-04T05:02:30.033 に答える