구문 벡터 데이터 읽기
#
def read_data(path_1, path_2, path_3):
with open(path_1, 'r', encoding='utf-8') as f1, \
open(path_2, 'r', encoding='utf-8') as f2, \
open(path_3, 'r', encoding='utf-8') as f3:
words = []
# print(f1)
for line in f1:
words = line.split()
for line in f2:
words += line.split(' ')
for line in f3:
words += line.split(' ')
return words
#
def build_vocab(items, sort=True, min_count=0, lower=False):
"""
:param items: list [item1, item2, ... ]
:param sort: , items
:param min_count:
:param lower:
:return: list: word set
"""
result = []
if sort:
# sort by count
dic = defaultdict(int)
for item in items:
for i in item.split(" "):
i = i.strip()
if not i: continue
i = i if not lower else item.lower()
dic[i] += 1
# sort
dic = sorted(dic.items(), key=lambda d: d[1], reverse=True)
for i, item in enumerate(dic):
key = item[0]
if min_count and min_count > item[1]:
continue
result.append(key)
else:
# sort by items
for i, item in enumerate(items):
item = item if not lower else item.lower()
result.append(item)
vocab = [(w, i) for i, w in enumerate(result)]
reverse_vocab = [(i, w) for i, w in enumerate(result)]
return vocab, reverse_vocab
#
def save_word_dict(vocab, save_path):
with open(save_path, 'w', encoding='utf-8') as f:
for line in vocab:
w, i = line
f.write("%s\t%d
" % (w, i))
if __name__ == '__main__':
lines = read_data(config.train_seg_path_x, config.train_seg_path_y, config.test_seg_path_x)
vocab, reverse_vocab = build_vocab(lines)
save_word_dict(vocab, config.vocab_path)
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
형태소 분석은 데스크톱을 구성하는 데 도움이?문자×기계 학습에 흥미를 가져와 개인 범위의 용도를 생각해, 폴더 정리에 사용할 수 있을까 생각해 검토를 시작했습니다. 이번 검토에서는 폴더 구성 & text의 읽기 → mecab × wordcloud를 실시하고 있...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.