gensim과 함께 python을 사용하여 영어 wikipedia에서 word2vec 모델을 학습하고 싶습니다. 나는 그것에 대해 https://groups.google.com/forum/#!topic/gensim/MJWrDw_IvXw를 밀접하게 따랐다.위키 자료를 구문 분석 할 때 Gensim의 구두점 제거 등 사용 안함
그것은 저에게 효과적이지만 결과 word2vec 모델에 대해 마음에 들지 않는 것은 명명 된 요소가 분할되어 특정 응용 프로그램에서 모델을 사용할 수 없게 만듭니다. 필요한 모델은 명명 된 엔티티를 단일 벡터로 나타내야합니다.
왜 내가 spacy로 위키 피 디아 기사를 구문 분석하고 "north carolina"와 같은 "north carolina"와 같은 엔티티를 병합하여 word2vec가 단일 벡터로 표시 할 계획을 세웠습니다. 여태까지는 그런대로 잘됐다.
적응 구문 분석 내가 처음으로 사용하여 링크 된 토론에 추천 않은 전처리의 일부가되고 있습니다
...
wiki = WikiCorpus(wiki_bz2_file, dictionary={})
for text in wiki.get_texts():
article = " ".join(text) + "\n"
output.write(article)
...
이 문장은 단어, 숫자, 대문자를 중지 제거하고 각 기사를 저장 결과 출력 파일에서 별도의 행. 문제는 spacy의 NER가이 전처리 된 텍스트에서 실제로 작동하지 않는다는 것입니다. NER (구두점)에 대문자 및 대문자를 사용한다고 생각하기 때문입니다.
구두점 등을 제거하지 못하도록 gensim의 전처리를 "비활성화"할 수있는 사람이 누구인지 알고 있지만 압축 위키 백과 덤프에서 직접 텍스트에 대한 위키피디아 문서를 구문 분석합니까? 아니면 누군가가 이것을 수행하는 더 좋은 방법을 알고 있습니까? 미리 감사드립니다!
업데이트 : Gensim의 WikiCorpus 클래스를 복사하여 필요한 곳에 직접 spaCy 작업을 추가했습니다. 지금 당장 이것은 gensim이 wikipedia 텍스트를 전처리하는 방식을 바꾸고 싶다면 갈 길 인 것 같습니다. – marlonfl
그런데 이미이 방법을 구현하고이 문제를 해결했다면 여기서 접근 방법을 공유 할 수 있다면 좋을 것입니다. – sophros