2
word2vec 유사성 사전을 만들려고합니다. 하나의 사전을 만들 수 있었지만 유사점이 제대로 채워지지 않았습니다. 내 코드에서 아무 것도 놓치고 있습니까?Word2Vec이 제대로 작동하지 않는 스킵 그램
입력 샘플 데이터 텍스트
TAK PO LUN UNIT 3 15/F WAYSON COMMERCIAL G 28 CONNAUGHT RD WEST SHEUNG WAN
- EDDY SUSANTO YAHYA ROOM 1503-05 WESTERN CENTRE 40-50 DES VOEUX W. SHEUNG WAN
DNA FINANCIAL SYSTEMS INC UNIT 10 19F WAYSON COMMERCIAL 28 CONNAUGHT RD SHEUNG WAN
G/F 60 PO HING FONG SHEUNG WAN
10B CENTRAL MANSION 270 QUEENS RD CENTRAL SHEUNG WAN
AKAMAI INTERNATIONAL BV C/O IADVANTAGE 28/F OF MEGA I-ADVANTAGE 399 CHAI WAN RD CHAI WAN HONG KO HONG KONG
VICTORIA CHAN F/5E 1-3 FLEMING RD WANCHI WAN CHAI
HISTREND 365 5/F FOO TAK BUILDING 365 HENNESSY RD WAN CHAI H WAN CHAI
ROOM 1201 12F CHINACHEM JOHNSO PLAZA 178 186 JOHNSTON RD WAN CHAI
LUEN WO BUILDING 339 HENNESSY RD 9 FLOOR WAN CHAI HONG KONG
내 코드 :
import gensim
from gensim import corpora,similarities,models
class AccCorpus(object):
def __init__(self):
self.path = ''
def __iter__(self):
for sentence in data["Adj_Addr"]:
yield [word.lower() for word in sentence.split()]
def build_corpus():
model = gensim.models.word2vec.Word2Vec(alpha=0.05, min_alpha=0.05,window=2,sg=1)
sentences = AccCorpus()
model.build_vocab(sentences)
for epoch in range(1):
model.train(sentences,total_examples=model.corpus_count, epochs=model.iter)
model.alpha -= 0.002 # decrease the learning rate
model.min_alpha = model.alpha # fix the learning rate, no decay
model_name = "word2vec_model"
model.save(model_name)
return model
model=build_corpus()
내 결과 : 여기
model.most_similar("wan")
[('want', 0.6867533922195435),
('puiwan', 0.6323356032371521),
('wan.', 0.6132887005805969),
('wanstreet', 0.5945449471473694),
('aupuiwan', 0.594132661819458),
('futan', 0.5883135199546814),
('fotan', 0.5817855000495911),
('shanmei', 0.5807071924209595),
('30-33', 0.5789132118225098),
('61-63au', 0.5711270570755005)]
은 내 기대 유사성에 대한 ed 출력 : sheungwan, wanchai, chaiwan. 내 스킵 그램이 제대로 작동하지 않는 것 같아요. 이 문제를 어떻게 해결할 수 있습니까?
기본값에서'alpha' 또는'min_alpha'를 변경하지 마십시오. 'train()'을 두 번 이상 호출하거나'alpha '를 직접 관리하지 마라. 합리적인 방법으로 사전에 워드 토큰으로 처리 된 많은 양질의 데이터가 있는지 확인하십시오. 로깅을 활성화하고 모든 단계에서 진행 상황을 보여주는 합리적인 결과를 생성하는지 확인하십시오. 유사한 데이터 세트에 대한 작업 예제로 시작하고 기본 결과를 개선하는 데 도움이된다면 매개 변수 (예 : 'window') 만 변경하십시오. – gojomo
@gojomo, sg 매개 변수로 수행 한 작업이 있습니까? –