2

SUutime / stanford nlp を使用していますが、うまく機能していますが、通常の日付形式を読み取る方法がわかりません。

例えば:

「私たちは 1988 年 10 月 27 日にイベントに行きました」

nullを返します

'we going at october 27th 1988 to the event' のような表現の場合、問題なく動作します

何か案は?

乾杯

4

3 に答える 3

3

私はスタンフォードの一時的なパッケージの経験はありませんが、おそらくその一時的な形式に合わせて調整されていません。

ご覧になることをお勧めします: http://cogcomp.cs.illinois.edu/page/software_view/IllinoisTemporalExtractor

これは基本的に HeidelTime に基づいて機能します: https://code.google.com/p/heideltime/

于 2014-05-27T09:04:41.520 に答える
1

わかりました、皆さん、私はそれを手に入れたと思います。

sutime/english.sutime.txt の 319 行目には、米国のタグ付けのパターンがいくつかあります。

{ ruleType: "time", pattern: /yyyy-?MM-?dd-?'T'HH(:?mm(:?ss([.,]S{1,3})?)?)?(Z )?/ }
{ ruleType: "time", pattern: /yyyy-MM-dd/ }
{ ruleType: "time", pattern: /'T'HH(:?mm(:?ss(.,)?)? )?(Z)?/ }
# トークナイザーは「余分なスラッシュを追加することがあります
{ ruleType: "time", pattern: /yyyy\?/MM\?/dd/ }
{ ruleType: "time", pattern: /MM?\? /dd?\?/(yyyy|yy)/ }
{ ruleType: "time", pattern: /MM?-dd?-(yyyy|yy)/ }
{ ruleType: "time", pattern: /HH?:mm (:ss)?/ }
{ ruleType: "time", pattern: /yyyy-MM/ }

必要な順序にするために、いくつかのルールタイプを追加するだけです

于 2014-05-28T10:52:43.560 に答える
1

誰かが役に立つと思った場合に備えて、これをここに置きます。

問題は、一部の時刻形式がサポートされていないことです。

sutime/english.sutime.txt ファイルを見ると、以下のような行が表示されます。そこにあるTODOは、他のフォーマットを追加できることを示しています。以下に示すように、他に2つ追加しました。

  # TODO: Support other timezone formats
  { ruleType: "time", pattern: /yyyy-?MM-?dd-?'T'HH(:?mm(:?ss([.,]S{1,3})?)?)?(Z)?/ }
  { ruleType: "time", pattern: /yyyy-MM-dd/ }
  { ruleType: "time", pattern: /'T'HH(:?mm(:?ss([.,](S{1,3}))?)?)?(Z)?/ }
  #The entries below are newly added to support other time formats.
  { ruleType: "time", pattern: /dd\/MM\/yyyy/ }
  { ruleType: "time", pattern: /dd-MM-yyyy/ }

新しく追加されたエントリにより、SUTime はフォームの時間形式を正しく識別できます。

2014 年 12 月 20 日または 2014 年 12 月 28 日

これは、OP の必須フォームと同じです。

于 2016-02-21T21:47:03.880 に答える