pyhanlp 文字推薦,同義改寫,語義距離
文字推薦
該部分的內容之所以在一起是因其底層原理相同。文字推薦,語義距離,同義改寫等都是基於word2vec的。因為作者HanLP原始碼和部落格都沒有寫該部分的原理。所以筆者大概查看了原始碼,發現功能實現原理非常之簡單,就是根據文件與給定單詞的距離進行打分,而這個語義距離就是從word2vec來的。熟悉word2vec的同學聽到這裡應該也就明白其內部執行的原理了吧。
這裡的文字推薦屬於。句子級別,從一系列句子中挑出與輸入句子最相似的那一個。在搜尋中是有用的。
有關內容你還可以參考這裡:
文字推薦程式碼
from pyhanlp import *
# 文字推薦
Suggester = JClass( "com.hankcs.hanlp.suggest.Suggester")
suggester = Suggester()
title_array = [
"威廉王子發表演說 呼籲保護野生動物",
"魅惑天后許佳慧不愛“預謀” 獨唱《許某某》",
"《時代》年度人物最終入圍名單出爐 普京馬雲入選",
"“黑格比”橫掃菲:菲吸取“海燕”經驗及早疏散",
"日本保密法將正式生效 日媒指其損害國民知情權",
"英報告說空氣汙染帶來“公共健康危機”"
]
for title in title_array:
suggester.addSentence( title)
print(suggester.suggest("陳述", 2)) # 語義
print(suggester.suggest("危機公關", 1)) # 字元
print(suggester.suggest("mayun", 1)) # 拼音
print(suggester.suggest("徐家彙", 1)) # 拼音
[威廉王子發表演說 呼籲保護野生動物, 英報告說空氣汙染帶來“公共健康危機”]
[英報告說空氣汙染帶來“公共健康危機”]
[《時代》年度人物最終入圍名單出爐 普京馬雲入選]
[魅惑天后許佳慧不愛“預謀” 獨唱《許某某》]
語義距離
語義距離該部分是其實還是word2vec的應用,簡單的來說,我們可以獲取兩個詞的語義距離。因此我們也就獲取了,同義改寫的功能(語義距離最近的是哦同義詞)。而基於此,我們當然還可以獲得更多功能。不過本文只簡介CoreSynonymDictionary該類的用法,下面的兩個段程式碼一個是原作者給的,第二段程式碼是我檢視原始碼之後給出了可以使用的方法。但是想要獲得完整的功能還是直接使用word2vec好些,對於python而言或許自己編寫或者使用gensim可能是更好的選擇。
- word2vec
- 詞向量訓練、載入、詞語相似度計算、語義運算、查詢、KMeans聚類
- 文件語義相似度計算
第一段程式碼
CoreSynonymDictionary = JClass("com.hankcs.hanlp.dictionary.CoreSynonymDictionary")
word_array = [
"香蕉",
"蘋果",
"白菜",
"水果",
"蔬菜",
"自行車",
"公交車",
"飛機",
"買",
"賣",
"購入",
"新年",
"春節",
"丟失",
"補辦",
"辦理",
"送給",
"尋找",
"孩子",
"教室",
"教師",
"會計",
]
print("%-5s\t%-5s\t%-10s\t%-5s\n" % ("詞A", "詞B", "語義距離", "語義相似度"))
for a in word_array:
for b in word_array:
print("%-5s\t%-5s\t%-15d\t%-5.10f" % (a, b, CoreSynonymDictionary.distance(a, b),
CoreSynonymDictionary.similarity(a, b)))
詞A 詞B 語義距離 語義相似度
香蕉 香蕉 0 1.0000000000
香蕉 蘋果 19980 0.9999997311
香蕉 白菜 2628369 0.9999646244
香蕉 水果 32967 0.9999995563
香蕉 蔬菜 2630367 0.9999645975
香蕉 自行車 1854515628 0.9750398066
香蕉 公交車 1854535619 0.9750395376
香蕉 飛機 1857307833 0.9750022259
香蕉 買 39729797433 0.4652709248
香蕉 賣 39729897333 0.4652695802
香蕉 購入 39729797433 0.4652709248
香蕉 新年 4981789224 0.9329493801
香蕉 春節 4981789224 0.9329493801
香蕉 丟失 46784535633 0.3703201856
香蕉 補辦 39205230527 0.4723311464
香蕉 辦理 39205222533 0.4723312540
香蕉 送給 40831595534 0.4504416652
香蕉 尋找 41124601233 0.4464980592
香蕉 孩子 6734891367 0.9093541255
香蕉 教室 1548030420 0.9791648353
香蕉 教師 7516908567 0.8988288432
香蕉 會計 7547972472 0.8984107496
蘋果 香蕉 19980 0.9999997311
蘋果 蘋果 0 1.0000000000
蘋果 白菜 2608389 0.9999648933
蘋果 水果 12987 0.9999998252
蘋果 蔬菜 2610387 0.9999648664
蘋果 自行車 1854535608 0.9750395377
蘋果 公交車 1854555599 0.9750392686
蘋果 飛機 1857327813 0.9750019570
蘋果 買 39729817413 0.4652706559
蘋果 賣 39729917313 0.4652693113
蘋果 購入 39729817413 0.4652706559
蘋果 新年 4981809204 0.9329491112
蘋果 春節 4981809204 0.9329491112
蘋果 丟失 46784555613 0.3703199167
蘋果 補辦 39205250507 0.4723308775
蘋果 辦理 39205242513 0.4723309851
蘋果 送給 40831615514 0.4504413963
蘋果 尋找 41124621213 0.4464977903
蘋果 孩子 6734871387 0.9093543944
蘋果 教室 1548050400 0.9791645663
蘋果 教師 7516888587 0.8988291121
蘋果 會計 7547952492 0.8984110185
白菜 香蕉 2628369 0.9999646244
白菜 蘋果 2608389 0.9999648933
白菜 白菜 0 1.0000000000
白菜 水果 2595402 0.9999650681
白菜 蔬菜 1998 0.9999999731
白菜 自行車 1857143997 0.9750044310
白菜 公交車 1857163988 0.9750041620
白菜 飛機 1859936202 0.9749668503
白菜 買 39732425802 0.4652355492
白菜 賣 39732525702 0.4652342046
白菜 購入 39732425802 0.4652355492
白菜 新年 4984417593 0.9329140045
白菜 春節 4984417593 0.9329140045
白菜 丟失 46787164002 0.3702848100
白菜 補辦 39207858896 0.4722957708
白菜 辦理 39207850902 0.4722958784
白菜 送給 40834223903 0.4504062896
白菜 尋找 41127229602 0.4464626836
白菜 孩子 6732262998 0.9093895011
白菜 教室 1550658789 0.9791294597
白菜 教師 7514280198 0.8988642188
白菜 會計 7545344103 0.8984461252
水果 香蕉 32967 0.9999995563
水果 蘋果 12987 0.9999998252
水果 白菜 2595402 0.9999650681
水果 水果 0 1.0000000000
水果 蔬菜 2597400 0.9999650412
水果 自行車 1854548595 0.9750393629
水果 公交車 1854568586 0.9750390939
水果 飛機 1857340800 0.9750017822
水果 買 39729830400 0.4652704811
水果 賣 39729930300 0.4652691365
水果 購入 39729830400 0.4652704811
水果 新年 4981822191 0.9329489364
水果 春節 4981822191 0.9329489364
水果 丟失 46784568600 0.3703197419
水果 補辦 39205263494 0.4723307027
水果 辦理 39205255500 0.4723308103
水果 送給 40831628501 0.4504412215
水果 尋找 41124634200 0.4464976155
水果 孩子 6734858400 0.9093545692
水果 教室 1548063387 0.9791643915
水果 教師 7516875600 0.8988292869
水果 會計 7547939505 0.8984111933
蔬菜 香蕉 2630367 0.9999645975
蔬菜 蘋果 2610387 0.9999648664
蔬菜 白菜 1998 0.9999999731
蔬菜 水果 2597400 0.9999650412
蔬菜 蔬菜 0 1.0000000000
蔬菜 自行車 1857145995 0.9750044041
蔬菜 公交車 1857165986 0.9750041351
蔬菜 飛機 1859938200 0.9749668234
蔬菜 買 39732427800 0.4652355223
蔬菜 賣 39732527700 0.4652341777
蔬菜 購入 39732427800 0.4652355223
蔬菜 新年 4984419591 0.9329139777
蔬菜 春節 4984419591 0.9329139777
蔬菜 丟失 46787166000 0.3702847831
蔬菜 補辦 39207860894 0.4722957440
蔬菜 辦理 39207852900 0.4722958515
蔬菜 送給 40834225901 0.4504062627
蔬菜 尋找 41127231600 0.4464626567
蔬菜 孩子 6732261000 0.9093895280
蔬菜 教室 1550660787 0.9791294328
蔬菜 教師 7514278200 0.8988642457
蔬菜 會計 7545342105 0.8984461521
自行車 香蕉 1854515628 0.9750398066
自行車 蘋果 1854535608 0.9750395377
自行車 白菜 1857143997 0.9750044310
自行車 水果 1854548595 0.9750393629
自行車 蔬菜 1857145995 0.9750044041
自行車 自行車 0 1.0000000000
自行車 公交車 19991 0.9999997309
自行車 飛機 2792205 0.9999624193
自行車 買 37875281805 0.4902311182
自行車 賣 37875381705 0.4902297736
自行車 購入 37875281805 0.4902311182
自行車 新年 3127273596 0.9579095735
自行車 春節 3127273596 0.9579095735
自行車 丟失 44930020005 0.3952803790
自行車 補辦 37350714899 0.4972913398
自行車 辦理 37350706905 0.4972914474
自行車 送給 38977079906 0.4754018586
自行車 尋找 39270085605 0.4714582526
自行車 孩子 8589406995 0.8843939321
自行車 教室 306485208 0.9958749714
自行車 教師 9371424195 0.8738686498
自行車 會計 9402488100 0.8734505562
公交車 香蕉 1854535619 0.9750395376
公交車 蘋果 1854555599 0.9750392686
公交車 白菜 1857163988 0.9750041620
公交車 水果 1854568586 0.9750390939
公交車 蔬菜 1857165986 0.9750041351
公交車 自行車 19991 0.9999997309
公交車 公交車 0 1.0000000000
公交車 飛機 2772214 0.9999626884
公交車 買 37875261814 0.4902313872
公交車 賣 37875361714 0.4902300427
公交車 購入 37875261814 0.4902313872
公交車 新年 3127253605 0.9579098426
公交車 春節 3127253605 0.9579098426
公交車 丟失 44930000014 0.3952806480
公交車 補辦 37350694908 0.4972916089
公交車 辦理 37350686914 0.4972917165
公交車 送給 38977059915 0.4754021276
公交車 尋找 39270065614 0.4714585217
公交車 孩子 8589426986 0.8843936631
公交車 教室 306505199 0.9958747023
公交車 教師 9371444186 0.8738683807
公交車 會計 9402508091 0.8734502872
飛機 香蕉 1857307833 0.9750022259
飛機 蘋果 1857327813 0.9750019570
飛機 白菜 1859936202 0.9749668503
飛機 水果 1857340800 0.9750017822
飛機 蔬菜 1859938200 0.9749668234
飛機 自行車 2792205 0.9999624193
飛機 公交車 2772214 0.9999626884
飛機 飛機 0 1.0000000000
飛機 買 37872489600 0.4902686988
飛機 賣 37872589500 0.4902673543
飛機 購入 37872489600 0.4902686988
飛機 新年 3124481391 0.9579471542
飛機 春節 3124481391 0.9579471542
飛機 丟失 44927227800 0.3953179597
飛機 補辦 37347922694 0.4973289205
飛機 辦理 37347914700 0.4973290281
飛機 送給 38974287701 0.4754394393
飛機 尋找 39267293400 0.4714958333
飛機 孩子 8592199200 0.8843563514
飛機 教室 309277413 0.9958373907
飛機 教師 9374216400 0.8738310691
飛機 會計 9405280305 0.8734129755
買 香蕉 39729797433 0.4652709248
買 蘋果 39729817413 0.4652706559
買 白菜 39732425802 0.4652355492
買 水果 39729830400 0.4652704811
買 蔬菜 39732427800 0.4652355223
買 自行車 37875281805 0.4902311182
買 公交車 37875261814 0.4902313872
買 飛機 37872489600 0.4902686988
買 買 0 1.0000000000
買 賣 99900 0.9999986554
買 購入 0 1.0000000000
買 新年 34748008209 0.5323215446
買 春節 34748008209 0.5323215446
買 丟失 7054738200 0.9050492608
買 補辦 524566906 0.9929397783
買 辦理 524574900 0.9929396707
買 送給 1101798101 0.9851707404
買 尋找 1394803800 0.9812271344
買 孩子 46464688800 0.3746250503
買 教室 38181767013 0.4861060895
買 教師 47246706000 0.3640997680
買 會計 47277769905 0.3636816744
賣 香蕉 39729897333 0.4652695802
賣 蘋果 39729917313 0.4652693113
賣 白菜 39732525702 0.4652342046
賣 水果 39729930300 0.4652691365
賣 蔬菜 39732527700 0.4652341777
賣 自行車 37875381705 0.4902297736
賣 公交車 37875361714 0.4902300427
賣 飛機 37872589500 0.4902673543
賣 買 99900 0.9999986554
賣 賣 0 1.0000000000
賣 購入 99900 0.9999986554
賣 新年 34748108109 0.5323202001
賣 春節 34748108109 0.5323202001
賣 丟失 7054638300 0.9050506054
賣 補辦 524666806 0.9929384338
賣 辦理 524674800 0.9929383262
賣 送給 1101698201 0.9851720850
賣 尋找 1394703900 0.9812284790
賣 孩子 46464788700 0.3746237057
賣 教室 38181866913 0.4861047450
賣 教師 47246805900 0.3640984234
賣 會計 47277869805 0.3636803298
購入 香蕉 39729797433 0.4652709248
購入 蘋果 39729817413 0.4652706559
購入 白菜 39732425802 0.4652355492
購入 水果 39729830400 0.4652704811
購入 蔬菜 39732427800 0.4652355223
購入 自行車 37875281805 0.4902311182
購入 公交車 37875261814 0.4902313872
購入 飛機 37872489600 0.4902686988
購入 買 0 1.0000000000
購入 賣 99900 0.9999986554
購入 購入 0 1.0000000000
購入 新年 34748008209 0.5323215446
購入 春節 34748008209 0.5323215446
購入 丟失 7054738200 0.9050492608
購入 補辦 524566906 0.9929397783
購入 辦理 524574900 0.9929396707
購入 送給 1101798101 0.9851707404
購入 尋找 1394803800 0.9812271344
購入 孩子 46464688800 0.3746250503
購入 教室 38181767013 0.4861060895
購入 教師 47246706000 0.3640997680
購入 會計 47277769905 0.3636816744
新年 香蕉 4981789224 0.9329493801
新年 蘋果 4981809204 0.9329491112
新年 白菜 4984417593 0.9329140045
新年 水果 4981822191 0.9329489364
新年 蔬菜 4984419591 0.9329139777
新年 自行車 3127273596 0.9579095735
新年 公交車 3127253605 0.9579098426
新年 飛機 3124481391 0.9579471542
新年 買 34748008209 0.5323215446
新年 賣 34748108109 0.5323202001
新年 購入 34748008209 0.5323215446
新年 新年 0 1.0000000000
新年 春節 0 1.0000000000
新年 丟失 41802746409 0.4373708055
新年 補辦 34223441303 0.5393817663
新年 辦理 34223433309 0.5393818739
新年 送給 35849806310 0.5174922850
新年 尋找 36142812009 0.5135486791
新年 孩子 11716680591 0.8423035056
新年 教室 3433758804 0.9537845449
新年 教師 12498697791 0.8317782233
新年 會計 12529761696 0.8313601297
春節 香蕉 4981789224 0.9329493801
春節 蘋果 4981809204 0.9329491112
春節 白菜 4984417593 0.9329140045
春節 水果 4981822191 0.9329489364
春節 蔬菜 4984419591 0.9329139777
春節 自行車 3127273596 0.9579095735
春節 公交車 3127253605 0.9579098426
春節 飛機 3124481391 0.9579471542
春節 買 34748008209 0.5323215446
春節 賣 34748108109 0.5323202001
春節 購入 34748008209 0.5323215446
春節 新年 0 1.0000000000
春節 春節 0 1.0000000000
春節 丟失 41802746409 0.4373708055
春節 補辦 34223441303 0.5393817663
春節 辦理 34223433309 0.5393818739
春節 送給 35849806310 0.5174922850
春節 尋找 36142812009 0.5135486791
春節 孩子 11716680591 0.8423035056
春節 教室 3433758804 0.9537845449
春節 教師 12498697791 0.8317782233
春節 會計 12529761696 0.8313601297
丟失 香蕉 46784535633 0.3703201856
丟失 蘋果 46784555613 0.3703199167
丟失 白菜 46787164002 0.3702848100
丟失 水果 46784568600 0.3703197419
丟失 蔬菜 46787166000 0.3702847831
丟失 自行車 44930020005 0.3952803790
丟失 公交車 44930000014 0.3952806480
丟失 飛機 44927227800 0.3953179597
丟失 買 7054738200 0.9050492608
丟失 賣 7054638300 0.9050506054
丟失 購入 7054738200 0.9050492608
丟失 新年 41802746409 0.4373708055
丟失 春節 41802746409 0.4373708055
丟失 丟失 0 1.0000000000
丟失 補辦 7579305106 0.8979890392
丟失 辦理 7579313100 0.8979889316
丟失 送給 5952940099 0.9198785204
丟失 尋找 5659934400 0.9238221264
丟失 孩子 53519427000 0.2796743111
丟失 教室 45236505213 0.3911553504
丟失 教師 54301444200 0.2691490288
丟失 會計 54332508105 0.2687309352
補辦 香蕉 39205230527 0.4723311464
補辦 蘋果 39205250507 0.4723308775
補辦 白菜 39207858896 0.4722957708
補辦 水果 39205263494 0.4723307027
補辦 蔬菜 39207860894 0.4722957440
補辦 自行車 37350714899 0.4972913398
補辦 公交車 37350694908 0.4972916089
補辦 飛機 37347922694 0.4973289205
補辦 買 524566906 0.9929397783
補辦 賣 524666806 0.9929384338
補辦 購入 524566906 0.9929397783
補辦 新年 34223441303 0.5393817663
補辦 春節 34223441303 0.5393817663
補辦 丟失 7579305106 0.8979890392
補辦 補辦 0 1.0000000000
補辦 辦理 7994 0.9999998924
補辦 送給 1626365007 0.9781105187
補辦 尋找 1919370706 0.9741669128
補辦 孩子 45940121894 0.3816852719
補辦 教室 37657200107 0.4931663112
補辦 教師 46722139094 0.3711599896
補辦 會計 46753202999 0.3707418960
辦理 香蕉 39205222533 0.4723312540
辦理 蘋果 39205242513 0.4723309851
辦理 白菜 39207850902 0.4722958784
辦理 水果 39205255500 0.4723308103
辦理 蔬菜 39207852900 0.4722958515
辦理 自行車 37350706905 0.4972914474
辦理 公交車 37350686914 0.4972917165
辦理 飛機 37347914700 0.4973290281
辦理 買 524574900 0.9929396707
辦理 賣 524674800 0.9929383262
辦理 購入 524574900 0.9929396707
辦理 新年 34223433309 0.5393818739
辦理 春節 34223433309 0.5393818739
辦理 丟失 7579313100 0.8979889316
辦理 補辦 7994 0.9999998924
辦理 辦理 0 1.0000000000
辦理 送給 1626373001 0.9781104112
辦理 尋找 1919378700 0.9741668052
辦理 孩子 45940113900 0.3816853795
辦理 教室 37657192113 0.4931664188
辦理 教師 46722131100 0.3711600972
辦理 會計 46753195005 0.3707420036
送給 香蕉 40831595534 0.4504416652
送給 蘋果 40831615514 0.4504413963
送給 白菜 40834223903 0.4504062896
送給 水果 40831628501 0.4504412215
送給 蔬菜 40834225901 0.4504062627
送給 自行車 38977079906 0.4754018586
送給 公交車 38977059915 0.4754021276
送給 飛機 38974287701 0.4754394393
送給 買 1101798101 0.9851707404
送給 賣 1101698201 0.9851720850
送給 購入 1101798101 0.9851707404
送給 新年 35849806310 0.5174922850
送給 春節 35849806310 0.5174922850
送給 丟失 5952940099 0.9198785204
送給 補辦 1626365007 0.9781105187
送給 辦理 1626373001 0.9781104112
送給 送給 0 1.0000000000
送給 尋找 293005699 0.9960563940
送給 孩子 47566486901 0.3597957907
送給 教室 39283565114 0.4712768299
送給 教師 48348504101 0.3492705084
送給 會計 48379568006 0.3488524148
尋找 香蕉 41124601233 0.4464980592
尋找 蘋果 41124621213 0.4464977903
尋找 白菜 41127229602 0.4464626836
尋找 水果 41124634200 0.4464976155
尋找 蔬菜 41127231600 0.4464626567
尋找 自行車 39270085605 0.4714582526
尋找 公交車 39270065614 0.4714585217
尋找 飛機 39267293400 0.4714958333
尋找 買 1394803800 0.9812271344
尋找 賣 1394703900 0.9812284790
尋找 購入 1394803800 0.9812271344
尋找 新年 36142812009 0.5135486791
尋找 春節 36142812009 0.5135486791
尋找 丟失 5659934400 0.9238221264
尋找 補辦 1919370706 0.9741669128
尋找 辦理 1919378700 0.9741668052
尋找 送給 293005699 0.9960563940
尋找 尋找 0 1.0000000000
尋找 孩子 47859492600 0.3558521847
尋找 教室 39576570813 0.4673332240
尋找 教師 48641509800 0.3453269024
尋找 會計 48672573705 0.3449088088
孩子 香蕉 6734891367 0.9093541255
孩子 蘋果 6734871387 0.9093543944
孩子 白菜 6732262998 0.9093895011
孩子 水果 6734858400 0.9093545692
孩子 蔬菜 6732261000 0.9093895280
孩子 自行車 8589406995 0.8843939321
孩子 公交車 8589426986 0.8843936631
孩子 飛機 8592199200 0.8843563514
孩子 買 46464688800 0.3746250503
孩子 賣 46464788700 0.3746237057
孩子 購入 46464688800 0.3746250503
孩子 新年 11716680591 0.8423035056
孩子 春節 11716680591 0.8423035056
孩子 丟失 53519427000 0.2796743111
孩子 補辦 45940121894 0.3816852719
孩子 辦理 45940113900 0.3816853795
孩子 送給 47566486901 0.3597957907
孩子 尋找 47859492600 0.3558521847
孩子 孩子 0 1.0000000000
孩子 教室 8282921787 0.8885189607
孩子 教師 782017200 0.9894747177
孩子 會計 813081105 0.9890566241
教室 香蕉 1548030420 0.9791648353
教室 蘋果 1548050400 0.9791645663
教室 白菜 1550658789 0.9791294597
教室 水果 1548063387 0.9791643915
教室 蔬菜 1550660787 0.9791294328
教室 自行車 306485208 0.9958749714
教室 公交車 306505199 0.9958747023
教室 飛機 309277413 0.9958373907
教室 買 38181767013 0.4861060895
教室 賣 38181866913 0.4861047450
教室 購入 38181767013 0.4861060895
教室 新年 3433758804 0.9537845449
教室 春節 3433758804 0.9537845449
教室 丟失 45236505213 0.3911553504
教室 補辦 37657200107 0.4931663112
教室 辦理 37657192113 0.4931664188
教室 送給 39283565114 0.4712768299
教室 尋找 39576570813 0.4673332240
教室 孩子 8282921787 0.8885189607
教室 教室 0 1.0000000000
教室 教師 9064938987 0.8779936784
教室 會計 9096002892 0.8775755849
教師 香蕉 7516908567 0.8988288432
教師 蘋果 7516888587 0.8988291121
教師 白菜 7514280198 0.8988642188
教師 水果 7516875600 0.8988292869
教師 蔬菜 7514278200 0.8988642457
教師 自行車 9371424195 0.8738686498
教師 公交車 9371444186 0.8738683807
教師 飛機 9374216400 0.8738310691
教師 買 47246706000 0.3640997680
教師 賣 47246805900 0.3640984234
教師 購入 47246706000 0.3640997680
教師 新年 12498697791 0.8317782233
教師 春節 12498697791 0.8317782233
教師 丟失 54301444200 0.2691490288
教師 補辦 46722139094 0.3711599896
教師 辦理 46722131100 0.3711600972
教師 送給 48348504101 0.3492705084
教師 尋找 48641509800 0.3453269024
教師 孩子 782017200 0.9894747177
教師 教室 9064938987 0.8779936784
教師 教師 0 1.0000000000
教師 會計 31063905 0.9995819064
會計 香蕉 7547972472 0.8984107496
會計 蘋果 7547952492 0.8984110185
會計 白菜 7545344103 0.8984461252
會計 水果 7547939505 0.8984111933
會計 蔬菜 7545342105 0.8984461521
會計 自行車 9402488100 0.8734505562
會計 公交車 9402508091 0.8734502872
會計 飛機 9405280305 0.8734129755
會計 買 47277769905 0.3636816744
會計 賣 47277869805 0.3636803298
會計 購入 47277769905 0.3636816744
會計 新年 12529761696 0.8313601297
會計 春節 12529761696 0.8313601297
會計 丟失 54332508105 0.2687309352
會計 補辦 46753202999 0.3707418960
會計 辦理 46753195005 0.3707420036
會計 送給 48379568006 0.3488524148
會計 尋找 48672573705 0.3449088088
會計 孩子 813081105 0.9890566241
會計 教室 9096002892 0.8775755849
會計 教師 31063905 0.9995819064
會計 會計 0 1.0000000000
第二段程式碼
利用CoreSynonymDictionary,我們還可以幹哪些事情。這裡我們直接呼叫了CoreSynonymDictionary的同義改寫功能,
# 同義改寫
CoreSynonymDictionary = JClass("com.hankcs.hanlp.dictionary.CoreSynonymDictionary")
text = "這個方法可以利用同義詞詞典將一段文字改寫成意思相似的另一段文字,而且差不多符合語法"
print(CoreSynonymDictionary.rewrite(text),'\n')
print("獲取同義詞",CoreSynonymDictionary.rewrite("丟失"))
print("獲取同義詞,不分詞,相當於同義改寫",CoreSynonymDictionary.rewriteQuickly("丟失資訊"))
print("計算文件語義距離",CoreSynonymDictionary.similarity("你好啊","還行吧"))
print("獲取詞典中的位置",CoreSynonymDictionary.get("丟失"))
是法可利用同義詞詞典將同一段落文字改寫成意思相似的外一樣段落文字,而且基本上符合語法
獲取同義詞 丟
獲取同義詞,不分詞,相當於同義改寫 丟資訊
計算文件語義距離 0.0
獲取詞典中的位置 丟失=If19C01000 EQUAL [遺失=If19C01000, 丟失=If19C01000, 丟掉=If19C01000, 不見=If19C01000, 散失=If19C01000, 丟=If19C01000, 少=If19C01000, 掉=If19C01000, 不翼而飛=If19C01000, 遺落=If19C01000, 有失=If19C01000]
word2vec
除此之外,你也可以使用hanlp中的word2vec訓練自己的模型或者載入自己的模型,來完成更多的事情。詳細內容你可以瀏覽HanLP-wiki-word2vec,不過個人感覺wiki中給的幾個例子除了玩玩實際意義不大。不過也有實際意義大的用法,比如拿詞向量作文字分類,情感分析或者文字聚類,這個我在之後會寫。不過基於Python還是更推薦自己寫,或者使用gensim。因為本文件僅僅是HanLP的介紹,此處不再作更多描寫,你可以自行查詢資料,或者關注我的專欄—劍指漢語自然語言處理知乎地址,CSDN地址我會在之後補充這些部分。
WordVectorModel = JClass("com.hankcs.hanlp.mining.word2vec.WordVectorModel")
wordVectorModel = WordVectorModel("xxx.txt") # 此處新增模型
print(wordVectorModel.similarity("山東", "江蘇"))