그래서 내 요구 사항은 구두로 간단합니다. StanfordCoreNLP 기본 모델과 커스텀 엔티티 기반 맞춤 교육 모델이 필요합니다.Tokenizer Training with StanfordNLP
된 노력 내가 : - -이 : 그래서 내가 사용하고 싶었 최종 실행, 나는 내 노력이
은 다음 (RegexNER가 사용됩니다) 주어진 문장에서 특정 문구를 분리 할 수 있어야합니다 StanfordCoreNLP CRF 파일, tagger 파일 및 ner 모델 파일과 함께 맞춤형 교육용 모델을 제공합니다. 이 일을하는 공식적인 방법이 있는지 찾아 보려고했지만 아무것도 얻지 못했습니다. StanfordCoreNLP 파이프 라인에는 "ner.model"속성이 있지만 사용 된 경우 기본값을 건너 뜁니다.
된 노력 II : - 다음으로, 모델
stanford-corenlp-models-3.7.0.jar
을 추출하고, 모든 복사 (지금까지 가장 똑똑한 것은하지 않을 수도 있습니다 죄송합니다 그냥 사람이 생계를 만들려고.!!) : -
*.ser.gz (Parser Models)
*.tagger (POS Tagger)
*.crf.ser.gz (NER CRF Files)
을 다음과 같이
하고, 속성 "parser.model", "pos.model"와 "ner.model"각각에 쉼표로 구분 된 값을 넣어 시도 : -
parser.model=models/ner/default/anaphoricity_model.ser.gz,models/ner/default/anaphoricity_model_conll.ser.gz,models/ner/default/classification_model.ser.gz,models/ner/default/classification_model_conll.ser.gz,models/ner/default/clauseSearcherModel.ser.gz,models/ner/default/clustering_model.ser.gz,models/ner/default/clustering_model_conll.ser.gz,models/ner/default/english-embeddings.ser.gz,models/ner/default/english-model-conll.ser.gz,models/ner/default/english-model-default.ser.gz,models/ner/default/englishFactored.ser.gz,models/ner/default/englishPCFG.caseless.ser.gz,models/ner/default/englishPCFG.ser.gz,models/ner/default/englishRNN.ser.gz,models/ner/default/englishSR.beam.ser.gz,models/ner/default/englishSR.ser.gz,models/ner/default/gender.map.ser.gz,models/ner/default/md-model-dep.ser.gz,models/ner/default/ranking_model.ser.gz,models/ner/default/ranking_model_conll.ser.gz,models/ner/default/sentiment.binary.ser.gz,models/ner/default/sentiment.ser.gz,models/ner/default/truecasing.fast.caseless.qn.ser.gz,models/ner/default/truecasing.fast.qn.ser.gz,models/ner/default/word_counts.ser.gz,models/ner/default/wsjFactored.ser.gz,models/ner/default/wsjPCFG.ser.gz,models/ner/default/wsjRNN.ser.gz
ner.model=models/ner/default/english.all.3class.caseless.distsim.crf.ser.gz,models/ner/default/english.all.3class.distsim.crf.ser.gz,models/ner/default/english.all.3class.nodistsim.crf.ser.gz,models/ner/default/english.conll.4class.caseless.distsim.crf.ser.gz,models/ner/default/english.conll.4class.distsim.crf.ser.gz,models/ner/default/english.conll.4class.nodistsim.crf.ser.gz,models/ner/default/english.muc.7class.caseless.distsim.crf.ser.gz,models/ner/default/english.muc.7class.distsim.crf.ser.gz,models/ner/default/english.muc.7class.nodistsim.crf.ser.gz,models/ner/default/english.nowiki.3class.caseless.distsim.crf.ser.gz,models/ner/default/english.nowiki.3class.nodistsim.crf.ser.gz
pos.model=models/tagger/default/english-left3words-distsim.tagger
, 나는 다음과 같은 예외를 얻을 : -
Caused by: edu.stanford.nlp.io.RuntimeIOException: Error while loading a tagger model (probably missing model file)
Caused by: java.io.StreamCorruptedException: invalid stream header: EFBFBDEF
된 노력 III : - 나는 RegexNER으로 처리 할 수있을 것입니다 생각, 내가 어느 정도 성공 . RegexNER를 통해 배우는 엔티티인데 앞으로 나오는 표현식에는 적용되지 않습니다. 예 : 텍스트 내에서 "CUSTOM_ENTITY"엔티티를 찾을 수 있지만,
([ {ner:CUSTOM_ENTITY} ] /with/ [ {ner:CUSTOM_ENTITY} ])
과 같은 RegexNER를 넣으면 올바른 구문을 찾는 데 성공하지 못합니다.
정말 도움이 필요합니다. !!! 나는 완전한 모델을 다시 훈련시키고 싶지 않다. 스탠포드 사람들은 나에게 유용한 모델 정보를 GB 이상 가지고있다. 그냥 커스텀 엔티티도 추가하고 싶습니다.
죄송합니다! 어떻게 변경합니까? 이것은 OpenNLP가 아닌 StanfordNLP를위한 것입니다. – user3279692
답변이 없으므로 주석으로 달았습니다. 실제로는 classpath에 corenlp-models.jar 파일을 포함시키는 것이 훨씬 쉽습니다. 모델에 대한 사용자 지정 경로를 지정할 필요가 없습니다. 발생한 문제는 손상된 POS 모델 파일 인 것 같습니다. 정확히 무엇이 잘못되었는지는 분명하지 않습니다 (아마도 gzip 파일을 기대하고 있을까요?). –