SUutime / stanford nlp を使用していますが、うまく機能していますが、通常の日付形式を読み取る方法がわかりません。
例えば:
「私たちは 1988 年 10 月 27 日にイベントに行きました」
nullを返します
'we going at october 27th 1988 to the event' のような表現の場合、問題なく動作します
何か案は?
乾杯
SUutime / stanford nlp を使用していますが、うまく機能していますが、通常の日付形式を読み取る方法がわかりません。
例えば:
「私たちは 1988 年 10 月 27 日にイベントに行きました」
nullを返します
'we going at october 27th 1988 to the event' のような表現の場合、問題なく動作します
何か案は?
乾杯
私はスタンフォードの一時的なパッケージの経験はありませんが、おそらくその一時的な形式に合わせて調整されていません。
ご覧になることをお勧めします: http://cogcomp.cs.illinois.edu/page/software_view/IllinoisTemporalExtractor
これは基本的に HeidelTime に基づいて機能します: https://code.google.com/p/heideltime/
わかりました、皆さん、私はそれを手に入れたと思います。
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/ }
必要な順序にするために、いくつかのルールタイプを追加するだけです
誰かが役に立つと思った場合に備えて、これをここに置きます。
問題は、一部の時刻形式がサポートされていないことです。
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 の必須フォームと同じです。