2013-05-11 3 views
1

방금 ​​NLP (Natural Language Processing)로 시작하여 중요한 개념을 이해하기 위해 고심하고 있습니다. 미래 입력에 대한 관계 추출을위한 시스템을 훈련시키는 방법?NLP 모델 교육

  • 톰은 제리가 XYZ

  • 조직에서 작동

  • 는 사람이 일하는 곳입니다 ABC 회사를 위해 일하고 :

    예를 들어, 내가 좋아하는 몇 줄 수 있습니다. 이 모든 경우에

는 관계 배는 위의 예제와 일부 NLP 판독을 바탕으로

, 나는 우리의 제품을 기반으로 시스템을 훈련 할 필요가 있다고 생각 "작업"관련 선박 유형 ","사람 ""조직이다 실제 "엔티티 이름"보다 음성 태그를 사용하여 필드의 다른 입력 데이터에 대해 일반화합니다. 이것은 내가 정말로 혼란스러워하는 부분입니다.

일부 알고리즘 (SVM 등)을 사용하는 것이 가능하기 때문에 간단히 지적 해주십시오. 다른 입력을 처리하기 위해 알고리즘이 알고리즘을 처리하는 방법에 대한 세부 정보가 누락되었습니다. 내가 본 모든 사례는 모델을 직접 제공하고 사용법을 알려주고 있습니다. 그로 인해 내가 원하는 몇 가지 사항을 구성 할 수 없기 때문입니다.

위의 문장을 사용하여 교육 모델을 구성하는 알고리즘 (모든 예제 알고리즘이 Ok 임)에 대한 예제는 매우 유용 할 것입니다.

시간을내어 도와 주셔서 감사합니다.

참고 : 태그 섹션에 지정된 프로그래밍 언어 중 하나는 저에게 도움이됩니다.

+1

'NLP'가 의미하는 바를 분명히해야한다고 생각합니다. 나는 당신이 자연 언어 처리를 의미하는 것 같아요? –

+0

@ NathanCraike : 예, 자연 언어 처리. "자연어 처리"라는 태그가없는 것 같습니다. 따라서 NLP를 사용해야했습니다. – kosa

답변

1

정확합니다. 단어를 사용하는 것만으로도 좋은 모델을 개발할 수는 없습니다. 당신은 차원을 줄여야합니다. 당신이 제안했듯이,이를 수행하는 한 가지 방법은 표현의 일부를 취하는 것입니다. 물론 추출 할 수있는 다른 기능도 있습니다.

@relation period 

@attribute minus_three {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'} 
@attribute minus_three_length real 
@attribute minus_three_case {'UC','LC','NA'} 
@attribute minus_two {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'} 
@attribute minus_two_length real 
@attribute minus_two_case {'UC','LC','NA'} 
@attribute minus_one {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'} 
@attribute minus_one_length real 
@attribute minus_one_case {'UC','LC','NA'} 
@attribute plus_one {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'} 
@attribute plus_one_length real 
@attribute plus_one_case {'UC','LC','NA'} 
@attribute plus_two {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'} 
@attribute plus_two_length real 
@attribute plus_two_case {'UC','LC','NA'} 
@attribute plus_three {'CC', 'CD', 'DT', 'FW', 'IN', 'JJ', 'JJR', 'JJS', 'LS', 'MD', 'NN', 'NNPS', 'NNS', 'NP', 'PDT', 'PRP', 'PRP$', 'RB', 'RBR', 'RBS', 'RP', 'UH', 'VB', 'VBD', 'VBG', 'VBN', 'VBP', 'VBZ', 'WDT', 'WP','WRB', 'NUM', 'PUNC', 'NEND', 'RAND'} 
@attribute plus_three_length real 
@attribute plus_three_case {'UC','LC','NA'} 
@attribute left_before_reliable real 
@attribute right_before_reliable real 
@attribute spaces_follow_period real 
@attribute class {'EOS','NEOS'} 

@data 

VBP, 2, LC,NP, 4, UC,NN, 1, UC,NP, 6, UC,NEND, 1, NA,NN, 7, LC,31,47,1,NEOS 
NNS, 10, LC,RBR, 4, LC,VBN, 5, LC,?, 3, NA,NP, 6, UC,NP, 6, UC,93,0,0,EOS 
VBD, 4, LC,RB, 2, LC,RP, 4, LC,CC, 3, UC,UH, 5, LC,VBP, 2, LC,19,17,2,EOS 

EDIT (질문의 해제 기준) : 문장의 기간의 종료 여부를 표시할지 여부를 예를 들어, 내 .arff 파일 중 하나의 다음과 같은 매우 작은 부분을 결정하기 위해 사용되었다 그래서 을, 이것은 감독 된 학습 실험이었습니다. 훈련 데이터는 단락 스타일 형식의 일반 문장에서 온,하지만 다음과 같은 벡터 모델로 변형되었다 :

  • 열 1 : 클래스 : 최종 문장의하거나하지-문장의 끝에
  • 열 2-8 : 해당 기간을 둘러싼 +/- 3 단어
  • 열 9,10 : 다음 신뢰할 수있는 문장 구분 기호 앞에 오는 단어의 왼쪽/오른쪽 단어 수 (예 :?,! 또는) 단락 표식).
  • 열 11 : 마침표 뒤에 오는 공백 수.

물론 이것은 매우 복잡한 문제는 아니지만 Weka를 소개합니다. 우리는 단순히 단어를 지형지 물로 사용할 수 없으므로 POS 태그를 사용했습니다. 나는 또한 단어의 길이를 추출했다. 단어의 대문자 사용 여부와 상관없이

위의 벡터 모델로 변환하고 .arff에 사용 된 기능을 추출 할 수 있다면 테스트 데이터로 아무 것도 공급할 수 없습니다.

+1

+1. 감사! 올바르게 이해하면 각 기능 (속성)에 대해 가능한 모든 값을 만들었고 데이터 섹션에는 다양한 조합에 대한 교육 데이터가 있습니다. 영어 문장의 예문을 설명하고이 훈련 파일이 그 목적을 위해 어떻게 사용되는지 설명해 주시겠습니까? 제가하려는 것은 문장에서 단어들 사이의 관계를 추출하는 것입니다. – kosa

+0

자습 또는 감독 학습을하려고합니까? 데이터에 대한 수업 라벨이 없으면 자율 학습을 수행하게됩니다 (위의 예는 해당하지 않음). 관리되지 않는 데이터의 경우 K- 평균, EM, Cob-web, Meta-Clusterer와 같은 Weka에서 사용할 수있는 여러 가지 클러스터링 알고리즘을 사용할 수 있습니다. 이들로부터, 개별 문장을 클러스터로 그룹화 할 수 있습니다. 그러면 비슷한 문장을 함께 그룹화해야합니다. POS 태그를 사용하는 경우 원하는 작업에 대해 관계를 강조 표시 할 수 없게됩니다. x WORKS at y. –

+0

나는 비슷한 문제에 맞붙고있다. 구문을 다루는 것이 한 가지이지만 구문과 의미를 기반으로 의미와 그룹을 파생시키려는 시도는 완전히 다른 방법입니다. 텍스트 분류가 어렵다고 생각합니다. –