SyntaxNet을 이해하고 배우려고합니다. 나는 코퍼스의 Name Entity Recognition을 위해 SyntaxNet을 사용할 방법이 있는지 알아 내려고하고있다. 모든 샘플 코드 또는 유용한 링크를 주시면 감사하겠습니다.Syntaxnet을 사용한 명명 된 엔티티 인식
답변
Syntaxnet이 명시 적으로 명명 된 엔터티 인식 기능을 제공하지는 않지만 Parsey McParseface는 음성 태그 지정을 수행하고 출력을 Co-NLL 테이블로 생성합니다.
고유 명사는 NNP로 태그가 지정되어 있으며 다음과 같은 간단한 정규식 식별자 인 <NNP>+
즉 하나 이상의 고유 명사를 함께 사용하면 문서 내에서 이름이 지정된 항목을 상당히 효율적으로 산출 할 수 있습니다. 그럼에도 불구하고 그것은 기초적이고 규칙에 기초한 것이지만 그럼에도 불구하고 효과적입니다.
"/ opt/tensorflow/models/syntaxnet/syntaxnet"에있는 demo.sh 스크립트의 출력 파일로 Co-NLL 데이터를 파이프하려면 파이프를 연결하는 코드 섹션을 주석으로 처리하십시오 conll2ascii.py이되도록 스크립트는 그래서 다음과 같습니다
PARSER_EVAL=bazel-bin/syntaxnet/parser_eval
MODEL_DIR=syntaxnet/models/parsey_mcparseface
[[ "$1" == "--conll" ]] && INPUT_FORMAT=stdin-conll || INPUT_FORMAT=stdin
$PARSER_EVAL \
--input=$INPUT_FORMAT \
--output=stdout-conll \
--hidden_layer_sizes=64 \
--arg_prefix=brain_tagger \
--graph_builder=structured \
--task_context=$MODEL_DIR/context.pbtxt \
--model_path=$MODEL_DIR/tagger-params \
--slim_model \
--batch_size=1024 \
--alsologtostderr \
| \
$PARSER_EVAL \
--input=stdin-conll \
--output=sample-param \
--hidden_layer_sizes=512,512 \
--arg_prefix=brain_parser \
--graph_builder=structured \
--task_context=$MODEL_DIR/context.pbtxt \
--model_path=$MODEL_DIR/parser-params \
--slim_model \
--batch_size=1024 \
--alsologtostderr
는 또한 출력 매개 변수가 샘플 PARAM에 위의 파일에 변경되었음을 알 수 있습니다. 이제 이것을 설정할 것입니다. "/ opt/tensorflow/models/syntaxnet/syntaxnet/models/parsey_mcparseface"에있는 context.pbtxt 파일을 만들고 출력 파일을 가리 키도록 입력 매개 변수를 만듭니다.
input {
name: 'sample-param'
record_format: 'conll-sentence'
Part {
file_pattern: "directory/prepoutput.txt"
}
}
저장하고 파일을 닫고 "/ 옵션/tensorflow/모델/syntaxnet"로 돌아가서 syntaxnet 튜토리얼에 주어진 syntaxnet/demo.sh을 실행 그것은과 같이 보일 것이다. 완료시 지정된 출력 폴더로 이동하면 공동 nll 형식의 테이블이 있어야합니다. 그런 다음 각 항목을 검토하고 pos 태그를 식별하는 간단한 반복 프로그램을 실행하면 엔티티 인식을 위해 제안 된 형식의 변형을 시도 할 수 있습니다.
희망이 도움이되었습니다!
아니요, NER (Named Entity Recognition)에 구문 분석을 사용하거나 필요로하는 도구 나 접근 방식을 접한 적이 없습니다.
NER은 구문 분석 트리와 관련된 기능으로 인해 약간의 이점을 얻을 수 있지만 NER의 일반적인 구현과 비교할 때 구문 분석이 매우 느리기 때문에 회귀 식으로 처리 할 수 있습니다. 이것은 심지어 음성 태그의 일부조차도 NER 시스템에서 기능으로 사용되지 않는 이유이기도합니다.
희망이 도움이됩니다.
나는 명명 된 개체 인식을 식별 할 수 있고 NER을 구문 분석 할 필요가없는 GATE을 사용했습니다. SyntaxNet의 음성 태그 작성자는 명사, 명사 (Noun Modifier) 등을 식별 할 수 있지만 (이름 엔티티의 다른 역할을 지정하는 데있어보다 강력한 도구 임) NER 식별에있어 얼마나 빨리 수행 할 것인지 확신 할 수 없습니다.
"아니오, 필자는 NER (Named Entity Recognition)에 구문 분석을 사용하거나 필요로하는 도구 나 접근 방식을 접한 적이 없습니다." 표준 NLTK 명명 된 엔티티 인식은 어떻습니까? http://www.nltk.org/book/ch07.html – Guido
또는 Apache OpenNLP https://opennlp.apache.org/ –