2017-12-01 1 views
0

문장의 순서가 문제가 될 수 있다는 증거를 제공하는 this question을 발견했습니다 (그러나 효과는 다른 임의적 초기화의 결과 일 수도 있음).gensim의 word2vec 실현은 문맥을 조사 할 때 문장 수준을 넘어서는가요?

나는 내 프로젝트에 대한 Reddit comment dumps를 처리하기를 원하지만 JSON에서 추출 된 문자열은 정렬되지 않은 수와 매우 다른 subreddits와 주제에 속하는 것, 그래서 나는 엉망 상황에 싶지 않은 : 그래서

{"gilded":0,"author_flair_text":"Male","author_flair_css_class":"male","retrieved_on":1425124228,"ups":3,"subreddit_id":"t5_2s30g","edited":false,"controversiality":0,"parent_id":"t1_cnapn0k","subreddit":"AskMen","body":"I can't agree with passing the blame, but I'm glad to hear it's at least helping you with the anxiety. I went the other direction and started taking responsibility for everything. I had to realize that people make mistakes including myself and it's gonna be alright. I don't have to be shackled to my mistakes and I don't have to be afraid of making them. ","created_utc":"1420070668","downs":0,"score":3,"author":"TheDukeofEtown","archived":false,"distinguished":null,"id":"cnasd6x","score_hidden":false,"name":"t1_cnasd6x","link_id":"t3_2qyhmp"} 

이웃 문장이 gensim word2vec에 중요합니까? 전체 주석 구조를 복구해야합니까, 아니면 간단히 "문장 봉지"를 추출하고 그것에 모델을 훈련시킬 수 있습니까?

답변

1

gensim Word2Vec 예상 코퍼스는 반복 가능한리스트 오브 토큰이다. (예를 들어, 토큰 목록은 작동하지만 더 큰 코퍼스의 경우 영구 저장소의 텍스트 예제를 스트리밍하는 재시작 가능한 반복자를 제공하여 메모리에 전체 코퍼스가 보관되는 것을 방지하고자합니다.)

개별 텍스트 내에서 단어 - 벡터 트레이닝 만 considrs 컨텍스트 . 즉, 하나의 토큰 목록 내에 있습니다. 이 경우 두 개의 연속 된 예는

['I', 'do', 'not', 'like', 'green', 'eggs', 'and', 'ham'] 
['Everybody', 'needs', 'a', 'thneed'] 

은 ... '햄'과 '모두'사이의 이러한 예에서, 아무런 영향이 없다 ...입니다. (문맥은 각 예제 내에서만 있습니다.)

예제의 순서가 특정 유형의 모든 단어 또는 주제를 함께 묶는 경우에도 미묘한 효과가있을 수 있습니다. 예를 들어, 단어 X의 모든 예제가 코퍼스 시작 부분에 나타나기를 원하지 않으며, 모든 예 Y가 늦게 발생하여 최상의 결과를 얻는 인터리브 된 다양한 예제를 방지 할 수 있습니다.

그래서 만약 당신의 코퍼스가 어떤 종류의 정렬 된 순서로 나오거나, 주제, 저자 또는 크기 또는 언어에 의해 뭉친다면, 그러한 덩어리를 제거하기 위해 초기 셔플을 수행하는 것이 종종 도움이됩니다. (훈련 경로 사이에서와 같이 더 이상 다시 셔플을하지 않으면 추가적인 이점이 거의 없습니다.)

+0

고맙습니다. 늦게 응답 해 주셔서 감사합니다. Reddit 덤프는 의견이 엇갈린다고 생각합니다. 따라서 구조를 재구성하는 작업에서 나를 구해 줬습니다. – Slowpoke

관련 문제