2016-06-29 5 views
4

SyntaxNet을 이해하고 배우려고합니다. 나는 코퍼스의 Name Entity Recognition을 위해 SyntaxNet을 사용할 방법이 있는지 알아 내려고하고있다. 모든 샘플 코드 또는 유용한 링크를 주시면 감사하겠습니다.Syntaxnet을 사용한 명명 된 엔티티 인식

답변

2

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 태그를 식별하는 간단한 반복 프로그램을 실행하면 엔티티 인식을 위해 제안 된 형식의 변형을 시도 할 수 있습니다.

희망이 도움이되었습니다!

1

아니요, NER (Named Entity Recognition)에 구문 분석을 사용하거나 필요로하는 도구 나 접근 방식을 접한 적이 없습니다.

NER은 구문 분석 트리와 관련된 기능으로 인해 약간의 이점을 얻을 수 있지만 NER의 일반적인 구현과 비교할 때 구문 분석이 매우 느리기 때문에 회귀 식으로 처리 할 수 ​​있습니다. 이것은 심지어 음성 태그의 일부조차도 NER 시스템에서 기능으로 사용되지 않는 이유이기도합니다.

희망이 도움이됩니다.

+0

"아니오, 필자는 NER (Named Entity Recognition)에 구문 분석을 사용하거나 필요로하는 도구 나 접근 방식을 접한 적이 없습니다." 표준 NLTK 명명 된 엔티티 인식은 어떻습니까? http://www.nltk.org/book/ch07.html – Guido

+0

또는 Apache OpenNLP https://opennlp.apache.org/ –

1

나는 명명 된 개체 인식을 식별 할 수 있고 NER을 구문 분석 할 필요가없는 GATE을 사용했습니다. SyntaxNet의 음성 태그 작성자는 명사, 명사 (Noun Modifier) ​​등을 식별 할 수 있지만 (이름 엔티티의 다른 역할을 지정하는 데있어보다 강력한 도구 임) NER 식별에있어 얼마나 빨리 수행 할 것인지 확신 할 수 없습니다.