1. 程式人生 > >pyhanlp 文字推薦,同義改寫,語義距離

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("山東", "江蘇"))