2017-03-01 14 views
1

スタンフォードCoreNLPは、多くの一般的なヨーロッパの日付形式(c.f. Date and time notation in Europe (Wikipedia))では機能しません。ヨーロッパの日付でCoreNLP文分割を修正しました

私たちは皆、日付解析が混乱していることを知っています。特にcrazy mm-dd-yyyy format the U.S. usesです。それにもかかわらず、CoreNLPは、点であまりにも積極的に分割するため、基本的なヨーロッパの日付フォーマットを処理することはできません。しかし、日付情報は、多くの場合、例えば、

1. Die Terroranschläge am 11. 
2. September 2001, einem Dienstag, waren vier [...] 

は、CoreNLPはにこれを分割何であれ、私がしようTerroranschläge11. 2001年9月です、einemディーンスターク、ヴァーレンフィアkoordinierteFlugzeugentführungenMITanschließendenSelbstmordattentaten ... (Wikipedia)

ダイ:として

CoreNLPは、ドイツ語NLPではほとんど使用できません。この点は単にこれを序数としてマークしています。つまり、これはドイツの「2001年9月11日」の書き方です。また、ドイツ語でNotation "11. 9. 2001"が頻繁に表示され、CoreNLPは9.が別のセンテンスであり、 "2001年9月11日"

と考えています(いくつかの方法をオーバーライドするなど)自分のルールで誤って分割された文章を再結合するパターンを定義するたとえば、[123]?\d\. 1?\d\.は日付の典型的なもので、月は多くありません。

+0

こんにちは、私はそれを再開することに取り組んでいます! – StanfordNLPHelp

+1

このようなパターンで入力文字列からドットを削除するだけで済みます。しかし、それはハックです。 –

+0

私はこのようなことを実験しています。文字のオフセットをそのまま維持するために、スペースと置き換えることです。しかし、これがCoreNLPによってサポートされていれば、それはより良いでしょう。 –

答えて

0

これはCoreNLPを含むソリューションではありませんが、恥知らずのセルフプラグでは、文分割器および単語トークナイザ、segtok; GitHub。この苦情を読んだ後、自分のセグメンタもこの機能をサポートしていないことに気がついたので、今すぐ追加してPyPIとGitHubにアップデートをプッシュしました。

私は、一般的に非常に良い結果を出していると思うのですが、ヨーロッパ特有の問題(私はスペイン語、英語、ドイツ語を流暢に話し、他のヨーロッパ言語についてはちょっと理解しています)あなたは見てみたいかもしれません。

0

私はバグレポートに回避策を掲載している:

基本的に

https://github.com/stanfordnlp/CoreNLP/issues/380

を、その間の何文字と前のトークンが存在しない場合、私は、前のトークンにドットをマージするものと既存のTokenizerAnnotatorをラップすべて数値です。これは合理的に効率的でなければなりません - 正規表現ベースのアプローチよりはるかに効率的です。

+0

これは正規表現(これは線形スキャン実装([RE2]などのDFAとして実装できるため、このソリューションよりも遅くならない)よりも速くなりますが、今度はそのすべての文をマージします数字で終わり。多分、(文章端末の前の数字)はあなたの特定のコーパスではそれほど頻繁ではありませんが、全体的には良い解決策にはならないでしょう。 – fnl

+0

はい、今のところ、誤ったポジティブが存在する可能性があります。しかし、私はこれらの多くを参照してください、そして、通常、悪い分裂を伴うエラーは、私にとってより深刻です。私はCoreNLPsのデフォルトでのエラーが多かったので、そのパフォーマンスには本当に不満を抱いていましたが、代替案を探そうとしていました。今のところ、これはもう一度「十分に良い」(このようないくつかのハッキングがあります)。 CoreNLPの文分割器は、より多くの作業と直接評価が必要です。 –

関連する問題