Professional Documents
Culture Documents
Cách Tạo Word2Vec Cho Competition - AIviVN - Diễn Đàn Machine Learning Cơ Bản
Cách Tạo Word2Vec Cho Competition - AIviVN - Diễn Đàn Machine Learning Cơ Bản
Duc_Nguyen Th02 13
Th02 13
Cuộc thi đầu tiên sẽ giải quyết 1 bài toán trong NLP. Để có thể tạo Word2Vec trong các bài toán NLP sẽ có rất nhiều
1/2
cách làm, mình xin giới thiệu cách sử dụng thư viện deepai-solution . Với thư viện này, bạn chỉ cần khoảng 10 dòng
Th02
code sẽ thực hiện đầy đủ các bước từ Collect dữ liệu => Tiền xử lý dữ liệu => Training model. Các bạn có thể tham
14
khảo thêm các bài viết của thư viện này tại link:
1. [VNLP Core] [1] Bài toán tách từ tiếng Việt - Tokenization, Word Segmentation
2. [VNLP Core] [2] Thực hành training và sử dụng biểu diễn từ trong không gian - word embedding
3. [VNLP Core] [3] Bài toán phân loại văn bản - Phân tích cảm xúc của bình luận (text classification)
[‘Chó hay Chó nhà (Danh pháp khoa học: Canis lupus familiaris hoặc Canis familiaris;[3]) từ Hán Việt gọi là “cẩu” (狗)
hoặc “khuyển” (犬), chó con còn được gọi là “cún”, là một loài động vật thuộc chi Chó (Canis), tạo nên một phần tiến
hóa của sói,[4] đồng thời là loài động vật ăn thịt trên cạn có số lượng lớn nhất.[5][6][7][8][9] Chó và sói xám thuộc
nhóm chị em,[10][11][12] giống như những loài sói hiện đại đều không có họ hàng gần đến những loài sói được thuần
hóa đầu tiên,[11][12] đồng nghĩa với tổ tiên tiên trực tiếp của loài chó đã bị tuyệt chủng.\n’,
Tokenization: Hay còn gọi là tách từ. Ví dụ: ô tô > ô-tô, xe máy > xe-máy, tàu hỏa > tàu-hỏa. Tiếng việt bao gồm
rất nhiều từ kép nên thuật toán tách từ là cần thiết để extract các từ trong 1 câu
Cleaning: Dữ liệu raw text lấy từ trên mạng (bao gồm wiki) thường chưa được qua xử lý cơ bản, như là chuyển
về 1 dạng viết hoa hoặc viết thường, hay bỏ đi kí tự đặc biệt (;’’[*-), v.v
Package utils của thư viện deepai_nlp hỗ trợ các bước tiền xử lý trước khi training
Sau bước tiền xử lý, biến documents trả về là 1 list of list. list trong chứa các từ của 1 câu đã được tách.
documents[0:1]
[['chó',
'hay',
'chó',
'nhà',
'danh_pháp',
'khoa_học',
Save model
https://forum.machinelearningcoban.com/t/cach-tao-word2vec-cho-competition/4238 2/4
8/26/2019 Cách tạo Word2Vec cho competition - AIviVN - Diễn đàn Machine Learning cơ bản
#save model
wv_path = "word2vec.model"
model.wv.save(wv_path)
Load model
model = word2vec_gensim.load_model(wv_path)
#List từ vựng
print(list(model.wv.vocab.keys()))
[‘chó’, ‘hay’, ‘nhà’, ‘khoa_học’, ‘canis’, ‘hoặc’, ‘từ’, ‘việt’, ‘gọi’, ‘là’, ‘con’, ‘còn’, ‘được’, ‘một’, ‘loài’, ‘động_vật’, ‘thuộc’,
‘tạo’, ‘nên’, ‘phần’, ‘của’, ‘đồng_thời’, ‘ăn’, ‘thịt’, ‘trên’, ‘có’, ‘số_lượng’, ‘lớn’, ‘nhất’, ‘và’, ‘nhóm’, ‘giống’, ‘như’, ‘những’,
‘hiện_đại’, ‘đều’, ‘không’, ‘gần’, ‘đến’, ‘thuần’, ‘hóa’, ‘với’, ‘tổ_tiên’, ‘trực_tiếp’, ‘đã’, ‘bị’, ‘cũng’, ‘đầu_tiên’, ‘con_người’,
‘thuần_hóa’
#Vector từ
model.wv['chó']
array([ 0.20996837, 0.04672969, 0.00612796, 0.10199189, 0.04284383,
0.06607222, -0.1570471 , -0.17777094, -0.13899504, -0.01372842,
-0.21414748, 0.24360956, 0.01670834, -0.00325496, -0.03942877,
0.01755704, 0.17473657, -0.23018128, 0.13549541, 0.09249159,
-0.00291212, -0.00125661, -0.06004395, -0.13341445, 0.11695279,
-0.07453852, 0.08257555, -0.00146314, 0.01376373, -0.02390479,
0.0421804 , -0.1471466 , 0.21114528, 0.2995382 , -0.06037546,
0.13958058, 0.12674932, 0.04225145, 0.11973551, -0.14360334,
-0.10694928, 0.01727156, 0.01924986, -0.07421874, 0.13023627,
-0.08312937, -0.13161008, 0.10784628, 0.15758684, 0.30760977,
0.11130455, -0.13162369, 0.11192392, -0.18748467, 0.01672681,
-0.09154139, -0.02551542, 0.0651836 , -0.13973272, -0.22617346,
0.15125474, -0.03153753, -0.04918195, 0.08599582, -0.09493273,
0.04014187, 0.0342055 , 0.02524309, 0.0828172 , -0.04834145,
0.08600103, 0.00285071, 0.15018648, -0.02649451, 0.11961257,
0.20582223, 0.07405726, -0.00093391, -0.10374855, -0.12769628,
-0.13743363, 0.12404515, 0.08176704, 0.12254485, 0.1331983 ,
0.00812968, 0.18412521, 0.1789782 , 0.04082415, -0.22863714,
0.11160092, 0.01334421, -0.01423964, 0.04715665, -0.17925018,
0.10887058, 0.04342718, 0.1345251 , 0.05599089, -0.00842899],
dtype=float32)
w1 = "chó"
model.wv.most_similar (positive=w1)
[('theo', 0.9904715418815613),
('động_vật', 0.987595796585083),
('với', 0.9871902465820312),
('con_người', 0.9870010614395142),
('chó_sói', 0.9852592945098877),
https://forum.machinelearningcoban.com/t/cach-tao-word2vec-cho-competition/4238 3/4
8/26/2019 Cách tạo Word2Vec cho competition - AIviVN - Diễn đàn Machine Learning cơ bản
('loài', 0.9851824641227722),
('nhóm', 0.9846805334091187),
('canis', 0.9841712713241577),
('nhất', 0.9840019941329956),
('mèo', 0.9833053946495056)]
nguyenvanhieu.vn Th02 14
https://forum.machinelearningcoban.com/t/cach-tao-word2vec-cho-competition/4238 4/4