2017-02-10 8 views
1

スタンドフォードコアNLPを使用してテキストから名前付きエンティティを取得するだけで、 "hello world"を実行します。しかし、 "Ixhuatlancillo"や "Veracruz"のように、いくつかの場所が正しく認識されていない場合、LUG(場所)としてラベルを付けなければならない両方の都市にORGというラベルが付けられます。 スペイン語のモデルや辞書を拡張してメキシコの場所(都市)を追加し、人名を追加したいと考えています。これどうやってするの?スタンフォードcoreNLPスペイン語モデル/辞書を拡張するには

ありがとうございます。

+0

RegexNERアノテーターには、辞書に項目を追加するための良い文書があります。http://nlp.stanford.edu/software/regexner.html – StanfordNLPHelp

答えて

1

regexner注釈を使用するのが最も簡単で簡単な方法です。これを使用して手動で辞書を構築することができます。ここ

は、例えば、ルール形式である2

トークンシーケンスタグタグは、その--上書きでき

システム管理者タイトルMISC(タブで区切られた、最初の列は、単語の任意の数であってもよいです)

上記の規則では、テキストに「システム管理者」というタイトルが付けられます。あなたのケースでは

ベラクルスLUG MISC、ORG、PERS 2

これは、辞書はMISC、ORGS、とPERSを上書きすることができます。 3番目の列に余分なタグを追加しないと、以前にタグ付けされたnerタグは上書きされません。

あなたはそれを実行するには、このようなコマンドを使用する場合があります。

java -Xmx8g edu.stanford.nlp.pipeline.StanfordCoreNLP -annotators tokenize,ssplit,pos,lemma,ner,regexner -props StanfordCoreNLP-spanish.properties -regexner.mapping /path/to/new_spanish.rules - regexner.ignorecase -regexner.validpospattern "^(NN|JJ|NNP).*" -outputFormat text -file sample-text.txt 

regexner.ignorecaseはケースレスの試合をすることを意味し、-regexner.validpospatternはあなたが唯一の指定されたPOSタグパターンを有する配列と一致する必要がありますと言っていること。

言われているこのすべては、私はちょうど文に走っ:

Ella fue a Veracruz. 

、それが適切にタグ付けされています。 Veracruzに間違ったタグを付ける原因となった文章を教えてください。

+0

私が解析しているテキストの一部は次のとおりです。 ** Nombre:マリオ・エズキエル・ビヤロボス・ガレゴス。 Dirección:Luis Donaldo Colosio No.56、JoséMa。モレロスY・パボン、 Ixhuatlancillo、ベラクルス Correoのelectrónico:[email protected] CURP:XXXX801015XXCLLR08のRFC:XXXX801015XX8 ** "Ixhualancillo" 正しいラベルを取得しますが、 "ベラクルス" がまだORGとしてラベル付けされます。 "Ixhuatlancillo、Veracruz"というテキストのみを解析すると、両方の場所に正しくラベルが付けられます。 テキストの長さに問題がありますか? –

+0

もう1つの質問、この例では2番の数字は何ですか?** Veracruz LUG MISC、ORG、PERS 2 ** –

+0

ここでは、ルール形式の完全な説明を示します。http://nlp.stanford.edu/nlp /javadoc/javanlp/edu/stanford/nlp/pipeline/TokensRegexNERAnnotator.html – StanfordNLPHelp

関連する問題