使用gensim進行訓練
手上的數據集:一共7類弹澎,共13,000多個文件绞铃,每個文件可以看做一句話,如何訓練詞向量囱嫩?方法一:全部文件一起加載訓練嗅辣,一共為13,000多句話;方法二:每類訓練挠说,每類訓練出一個對應向量、
使用gensim可以訓練愿题。首先遍歷每個文件损俭,每個文件中只有一行數據蛙奖,數據可以看做一句話,用逗號分開杆兵。依次讀取每一句話雁仲,使用空格替換逗號,然后存儲到字典中琐脏,轉換成pandas的DataFrame格式攒砖,保存到文件中。
import os
import pandas as pd
datas = {'label':[], 'text':[]}
for i in range(0,8):
for file in os.listdir('{}/'.format(i)):
data = open('{}/{}'.format(i, file), 'r')
data = list(data)[0].replace(',', ' ')[:-2]
datas['label'].append(i)
datas['text'].append(data)
datas = pd.DataFrame(datas)
datas.to_csv('data.csv')
隨后便可以開始訓練了日裙。從文件中使用pandas再讀取出數據格式吹艇,只提取text的部分,然后查找gensim的輸入格式是列表中包含列表的:
[['human', 'interface', 'computer'],
['survey', 'user', 'computer', 'system', 'response', 'time'],
['eps', 'user', 'interface', 'system'],
['system', 'human', 'system', 'eps'],
['user', 'response', 'time'],
['trees'],
['graph', 'trees'],
['graph', 'minors', 'trees'],
['graph', 'minors', 'survey']]
于是按照這樣的格式昂拂,把數據輸入到word2vec中進行訓練受神,長度默認為100維
import pandas as pd
from gensim.models import Word2Vec
data = pd.read_csv('data.csv')['text']
text = []
for i in data:
text.append(str(i).split(' '))
model = Word2Vec(text)
model.save('vector.model')