2017-08-15 14 views
0

私はCoreNLPサーバーをセットアップし、Stanford NERを使用して文章の期間を抽出しています。なぜスタンフォードNERのデモは、今年の「2017年」をCoreNLPサーバーに変換しないのですか?

私が文

解析するcorenlp.runオンラインでインタラクティブなデモを使用する場合は「何かが起きた昨年を」。

it shows 'DATE' and '2016'。 しかし、自分のサーバーは、CoreNLPの最新リリースであるonly shows 'DATE'を設定しました。さらに、Python Requestを使用してサーバーのAPIに同じ文を照会すると、応答の最初の2つのトークンには、フィールド'timex': {'type': 'DATE','tid': 't1', 'altValue': 'THIS P1Y OFFSET P-1Y'}'normalizedNER': 'THIS P1Y OFFSET P-1Y'が含まれています。

私の出力がデモのものほど良くないという事実に対処する必要があるのであれば、normalizedNERフィールドで何が得られる可能性があるのか​​、またはTHIS P1Y OFFSET P-1Yの意味を説明するStanford NERまたはtimex3ドキュメントはどこですか? ?ここで

は、私はあなたが実行しているときdocDateとして現在の日付を使用するようにパイプラインを伝えることを可能にする新機能を追加しましたHi、これはあなたの問題の主な情報源である全体のAPIレスポンス

[ 
{'word': 'Last', 'after': ' ', 'originalText': 'Last', 'timex': {'type': 'DATE', 'tid': 't1', 'altValue': 'THIS P1Y OFFSET P-1Y'}, 'pos': 'JJ', 'ner': 'DATE', 'lemma': 'last', 'normalizedNER': 'THIS P1Y OFFSET P-1Y', 'before': '', 'index': 1, 'characterOffsetBegin': 0, 'characterOffsetEnd': 4}, 
{'word': 'year', 'after': ' ', 'originalText': 'year', 'timex': {'type': 'DATE', 'tid': 't1', 'altValue': 'THIS P1Y OFFSET P-1Y'}, 'pos': 'NN', 'ner': 'DATE', 'lemma': 'year', 'normalizedNER': 'THIS P1Y OFFSET P-1Y', 'before': ' ', 'index': 2, 'characterOffsetBegin': 5, 'characterOffsetEnd': 9}, 
{'word': 'something', 'before': ' ', 'originalText': 'something', 'ner': 'O', 'lemma': 'something', 'after': ' ', 'characterOffsetEnd': 19, 'index': 3, 'characterOffsetBegin': 10, 'pos': 'NN'}, 
{'word': 'happened', 'before': ' ', 'originalText': 'happened', 'ner': 'O', 'lemma': 'happen', 'after': '', 'characterOffsetEnd': 28, 'index': 4, 'characterOffsetBegin': 20, 'pos': 'VBD'}, 
{'word': '.', 'before': '', 'originalText': '.', 'ner': 'O', 'lemma': '.', 'after': '', 'characterOffsetEnd': 29, 'index': 5, 'characterOffsetBegin': 28, 'pos': '.'} 
] 
+0

[この](https://stackoverflow.com/questions/39325657/why-does-normalizedner-for-dates-in-my-local-standford-corenlp-server-doesnt-di)が役に立つかもしれません。 –

答えて

0

です。この機能を利用するには、GitHubで入手可能なStanford CoreNLPの最新バージョンを使用する必要があります。また

、あなたはサーバを起動するときに-serverPropertiesオプションを使用して、これらのプロパティで.propertiesファイルを指定する必要があります:あなたがこれを行う場合は

annotators = tokenize,ssplit,pos,lemma,ner,entitymentions 
ner.usePresentDateForDocDate = true 

それが動作するようになりましたし、正しくリストする必要があり2016

+0

ありがとう!私はこれを試してみる。私が解析している文章の中には、過去の日付に話されたものがあります。異なる文章の異なる現在の日付を選ぶ方法はありますか? –

+0

これはAPI応答のnormalizedNERフィールドにこのP1YオフセットP-1Yを取得するという問題を解決していないようです –

0

インタラクティブなデモでcorenlpサーバーに行われたリクエストを詳しく見ると、現在の日付もリクエストとともに「日付」パラメータとして送信されることがわかります。 たとえば、あなたの文章が「私は今日学校に通った」場合、「今日」は「2017-19-09」(現在の日付)で正規化されています。 "date"パラメータを渡さないと、 "today"は正規化された日付と正確な日付を持ちません。

希望します。 enter image description here

関連する問題