MCPcopy Create free account
hub / github.com/BIT-DataLab/LakeBench / find_word2vec_of_column

Function find_word2vec_of_column

union/TUS/fastText.py:12–63  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

10
11
12def find_word2vec_of_column():
13 #加载fasttext模型
14 embedding_file = 'fastText/wiki-news-300d-1M.vec'
15 model = KeyedVectors.load_word2vec_format(embedding_file, binary=False)
16
17 #加载所有的表
18 folder_path = 'benchmark'
19 save_folder_path = 'benchmarkNl'
20 for file_name in os.listdir(folder_path):
21 if file_name.endswith('.csv'):
22 file_path = os.path.join(folder_path, file_name)
23 df = pd.read_csv(file_path)
24 saved_data = {}
25
26 for column in df.columns:
27 values = df[column].to_list()
28 values = [value for value in values if value!=" " and value!=""]
29 values = [process_string(value) for value in values]
30 counter = Counter(values)
31
32 #统计值出现的次数,形成一个字典
33 values_set = set(values)
34 embedding_of_thisColumn = []
35
36 for value in values_set:
37 tokens = value.split()
38 embeddings = []
39
40 #把每一个token分别查询,最后的embedding是所有token的平均值
41 for token in tokens:
42 if token in model.key_to_index:
43 embeddings.append(model[token])
44 if len(embeddings) == 0:
45 continue
46
47 array = np.array(embeddings)
48 average_vector = np.mean(array, axis = 0)
49 average_list = average_vector.tolist()
50 string_list = ' '.join(str(s) for s in average_list)
51
52 #添加对应个数的值
53 for i in range(counter[value]):
54 embedding_of_thisColumn.append(string_list)
55
56
57 saved_data[column] = embedding_of_thisColumn
58
59 saved_data = fill_zero(saved_data)
60 saved_df = pd.DataFrame(saved_data)
61 saved_file_path = os.path.join(save_folder_path, file_name)
62 saved_df.to_csv(saved_file_path, index=False)
63 print('sucess saved on ' + saved_file_path)
64
65
66if __name__ == '__main__':

Callers 1

fastText.pyFile · 0.85

Calls 2

process_stringFunction · 0.90
fill_zeroFunction · 0.90

Tested by

no test coverage detected