2013-12-20 2 views
2

나는 NLP 도메인에서 새롭지 만, 현재의 연구는 URL 주소에서 텍스트 파싱 (또는 키워드 추출)을 필요로합니다. 가짜 URL,NLP의 영어 단어 세분화?

http://ads.goole.com/appid/heads 
제약 내 분석에 넣어

두,

  1. 첫 번째 "광고"마지막 "머리"는 "머리"에서 "광고"더 의미하기 때문에 구별되어야한다 광고보다는 접미사.

  2. "appid"는 두 부분으로 파싱 될 수 있습니다. 즉 'app'과 'id'는 인터넷에서 의미 론적 의미를 갖는다.

나는 Stanford NLP 툴킷과 Google 검색 엔진을 사용해 보았습니다. 전자는 각 단어를 내 기대에 맞는 문법적 의미로 분류하려고합니다. Google 엔진은 "appid"에 대해 더 많은 현명함을 보여 주며 "app id"에 대한 제안을 제공합니다.

많은 사람들이이 단어를 검색했기 때문에 Google 검색의 검색 기록 참조를 살펴볼 수 없으므로 "app id"를 제공합니다. 비슷한 구문 분석을 수행하기 위해 오프라인 메서드를 일부 사용할 수 있습니까 ??

업데이트 : 단순한 URL이라도 "appid"와 같은 단어의 합성 수를 알 수 없으므로 정규 표현식 제안을 건너 뛰십시오. 당신이 정말로 원하는 것처럼 들리는

감사합니다,

야민 오히려 토큰에 비해

답변

6

는 단어 분할이라고합니다. 이것은 예를 들어 공간에 대한 감각을 이해하는 방법입니다.

이 전체 자습서를 완료하지는 못했지만 시작해야합니다. 잠재적 유스 케이스로 URL을 제공합니다.

http://jeremykun.com/2012/01/15/word-segmentation/

+1

자습서를 끝내고 책 텍스트의 특정 자료가 인터넷 URL (예 : appid)과 잘 작동하지 않는다는 것을 알았습니다. 그러나 좋은 출발점입니다. 그래서 언급 된 non-free google-2006 데이터 외에 다른 무료 자료를 검색 할 것입니다. 감사. – caesar0301

1

Python wordsegment module는이 작업을 수행 할 수 있습니다. pure-Python으로 작성된 영어 단어 세분화를위한 Apache2 라이센스 모듈이며 1 조 단어의 코퍼스를 기반으로합니다.

Peter Norvig의 "Beautiful Language"(Segaran and Hammerbacher, 2009)의 "Natural Language Corpus Data"장의 코드를 기반으로합니다.

데이터 파일은 Thorsten Brants와 Alex Franz가 설명한 Google Web Trillion Word Corpus에서 파생되었으며 Linguistic Data Consortium에서 배포합니다. 이 모듈에는 해당 데이터의 하위 집합 만 포함됩니다. Unigram 데이터에는 가장 일반적인 333,000 단어 만 포함됩니다. 마찬가지로 bigram 데이터에는 가장 일반적인 250,000 개의 문구 만 포함됩니다. 구두점을 제거하고 모든 단어와 구를 소문자로 처리합니다.

설치 pip로 쉽게 :

$ pip install wordsegment 

간단하게 단어의 목록을 얻을 수 segment 전화 : 당신이 눈치

>>> import wordsegment as ws 
>>> ws.segment('http://ads.goole.com/appid/heads') 
['http', 'ads', 'goole', 'com', 'appid', 'heads'] 

, 기존의 코퍼스는 "응용 프로그램 ID가"매우 순위를하지 않습니다 높은. 괜찮아. 우리는 그것을 쉽게 가르 칠 수 있습니다.간단히 bigram_counts 사전에 추가하십시오.

>>> ws.bigram_counts['app id'] = 10.2e6 
>>> ws.segment('http://ads.goole.com/appid/heads') 
['http', 'ads', 'goole', 'com', 'app', 'id', 'heads'] 

나는 "앱 ID"에 대한 구글 검색을 수행하고 결과의 수를 지적하여 값 10.2e6을 선택했다.

+0

''wordsegment''의 최신 버전 (v1.0 +)에서는 코드가 약간 다릅니다 : http://www.grantjenks.com/docs/wordsegment/using-a-different-corpus.html – GrantJ

관련 문제