2014-03-25 2 views
5

나는 시끄럽고 비공식적 인 영어 (즉, 소셜 미디어 스타일)로 작성된 1 ~ 10 문장 길이의 "기사"모음집을 가지고 있습니다. 날짜 및 시간과 같이 가능한 경우 각 기사에서 일부 정보를 추출해야합니다. 나는 또한이 기사가 말하는 것과 주된 "배우"가 누구인지 이해할 필요가있다.구조화되지 않은 텍스트에서 정보 추출

예제 : 문장이 인 경우 "내일 아침 10시 30 분부터 모든 사람의 존재가 필요합니다. 회사의 재무 예측에 대해 논의하십시오.", 추출해야합니다 :

  • 날짜/시간 => "10.30 내일 아침".
  • 주제 => "회사의 재정적 예측".
  • 배우 => "모두".

는 지금까지 내가 아는 한, 날짜와 시간은 NLP 기법을 사용하지 않고 추출 할 수 있지만 파이썬에서 단정 (http://natty.joestelmach.com/)만큼 좋은 아무것도 발견하지 않았습니다. 데이터의

  1. 사용 부분은 주석 코퍼스를 만들 :

    코 세라에 NLP 과정의 일부 동영상을 NLTK 책의 일부 챕터를 읽어보고 후 진행 방법에 대한 나의 이해는이 다음이다. 텍스트의 비공식 성 (예 : 맞춤법 오류, 정보가없는 대소 문자, 단어 약어 등) 때문에 기성품을 사용할 수 없습니다.

  2. 수동으로 (한숨 ...) 각 기사에 Penn TreeBank 태그 세트의 태그로 주석을 달아주십시오. 이 단계를 자동화하고 결과를 확인/수정하는 방법이 있습니까?
  3. 주석 처리 된 아티클에 POS 태그 지정자를 교육하십시오. 유망한 것으로 보이는 NLTK 트레이너 프로젝트를 발견했습니다 (http://nltk-trainer.readthedocs.org/en/latest/train_tagger.html).
  4. Chunking/Chinking. IOB 표기법을 사용하여 수동으로 다시 코퍼스에 주석을 추가해야합니다. 불행히도이 버그 보고서에 따르면 n-gram 덩어리는 깨졌습니다 : https://github.com/nltk/nltk/issues/367. 이것은 중요한 이슈로 보입니다. NLTK를 계속 사용해야 할지를 궁금하게 만드는 것은 그것이 1 년 이상이라는 것입니다.
  5. 모든 것을 제대로했으면 배우, 주제 및 날짜 시간을 청크에서 찾을 수 있다고 가정합니다. 맞습니까?

1,2,3 번을 건너 뛰고 작동하지만 오류율이 높은 구현이 가능합니까? 어떤 코퍼스를 사용해야합니까?

나는 또한 "yess", "c u"및 다른 가증함과 같은 일반적인 맞춤법 오류나 바로 가기를 수정하기위한 전처리 단계를 고려하고있었습니다. 이미 존재하는 것은 무엇이든 사용할 수 있습니까?

문제는 간단히 말해서 :이 문제를 해결하기위한 나의 접근 방식은 맞습니까? 그렇지 않다면 내가 뭘 잘못하고 있니?

+1

를 학문적 차원에서이 http://en.wikipedia.org/wiki/Semantic_role_labeling입니다 여기 내가 당신의 예문에 대한 참조 것입니다. – cyborg

답변

4

나는 (일시적으로) 1,2 건너 뛰고 3 작업을 생성하지만, 높은 오류율, 구현 가능성 수 있을까요? 어떤 자료를 사용해야합니까 ?

나는 또한 "yess", "c u"및 다른 가증스러운 것과 같은 일반적인 맞춤법 실수 또는 바로 가기를 수정하기위한 사전 처리 단계를 고려하고있었습니다. 이미 존재하는 것은 무엇이든 사용할 수 있습니까?

표준 언어 텍스트를 처리하는 것이 좋습니다. 참조하는 사전 처리는 정규화라고하는 자체 NLP 태스크입니다.

문제는 간단히 말해서, ... 또한, 당신은 맞춤법 검사, 문장 경계 감지 기능을 사용할 수 있습니다, http://www.ark.cs.cmu.edu/TweetNLP/입니다 : 여기에 트위터 정상화를위한 자원이다이 문제 올바른 해결에 나의 접근 방식은? 그렇지 않다면 내가 뭘 잘못하고 있니?

정규화를 추상화하면 귀하의 접근 방식이 유효하다고 생각합니다. 어노테이션 프로세스 자동화와 관련하여 : 먼저 다른 컴포넌트를 사용하여 프로세스를 부트 스트랩 (bootstrap) 할 수 있습니다. 그 후에 여러 반복 작업 중에 올바른 작업, 재교육 작업 등을 수행 할 수 있습니다. 수용 가능한 결과를 얻으려면 2, 3, 4 단계를 몇 번해야합니다.

문제를 이해하고 기존 솔루션을 최적화하는 데 관심이 있다면 자신 만의 모델을 개발할 수있는 도구에 중점을 두는 것이 좋습니다. 자신의 모델을 개발하는 것보다 결과를 우선시한다면 Gate (https://gate.ac.uk/) UIMA (http://uima.apache.org/)와 DKPro (UIMA를 확장) (https://code.google.com/p/dkpro-core-asl/)와 같은 기존 오픈 소스 텍스트 엔지니어링 프레임 워크를 살펴 보는 것이 좋습니다. 세 가지 프레임 워크 모두 기존 구성 요소를 래핑하므로 광범위한 솔루션을 사용할 수 있습니다.

관련 문제