Synonyms 入門介紹
Chinese Synonyms for Natural Language Processing and Understanding.
最好的中文近義詞工具包。
synonyms
可以用於自然語言理解的很多任務:文本對齊,推薦算法,相似度計算,語義偏移,關鍵字提取,概念提取,自動摘要,搜索引擎等。
Welcome
npm install node-synonyms
本項目爲 Synonyms 的 Node.js 版工具包,穩定版本爲 v1,在Mac OSX及Linux下完成測試。目前打包後,npm module有47MB,是由於詞表文件很大,下載時需要耐心。
支持使用環境變量配置:
環境變量 | 描述 | 默認值 |
---|---|---|
SYN_MODEL_W2V_PATH | word2vec訓練後得到的詞向量文件 | node_modules/node-synonyms/data/words.vector |
SYN_WORDSEG_CUSTOM_DICT | 分詞用戶詞典 | node_modules/node-synonyms/data/tokenizer/user.dict.utf8 |
SYN_WORDSEG_STOPWORD_DICT | 分詞停用詞詞典 | node_modules/node-synonyms/data/tokenizer/stop_words.utf8 |
SYN_WORDSEG_PUNCT_DICT | 分詞標點詞典 | node_modules/node-synonyms/data/tokenizer/punctuation.utf8 |
API
var synonyms = require("node-synonyms") # 使用上述環境變量做定製化
所有接口返回值都是Promise。
synonyms#seg(sentence, [stopwords, punct])
分詞接口
let sen1 = "移動互聯網";
synonyms.seg(sen1, true, true)
.then(function(words){
// do your magic
});
stopwords(Boolean)是否保留停用詞,punct(Boolean)是否保留標點符號。
- 返回值
[String],詞語組成的列表。
["移動","互聯網"]
synonyms#vector(word)
返回一個詞語的向量
synonyms.vector("股市")
.then(function(v){
// do your magic
})
- 返回值 JSONArray
[float]
,100維的float值組成的向量。
synonyms#display(word)
打印一個詞語的鄰居們及相關度
synonyms.display("飛機");
- 返回值 輸出控制檯,作爲調試使用。
synonyms#nearby(word)
返回一個詞語的鄰居們
synonyms.nearby("股市")
.then(function(results){
// do your magic
});
- 返回值 JSONArray
[[words], [scores]]
,包含兩個列表,第一個是詞語,第二個是對應位置詞語的距離分數,同樣是在[0~1]區間,越接近於1越相似。
比如:
[
["股市","股價","股票市場","股災","樓市","股票","香港股市","行情","恆指","金融市場"],
[1,0.786284,0.784575,0.751607,0.712255,0.712179,0.710806,0.694434,0.67501,0.666439]
]
synonyms#compare(sentence1, sentence2)
比較兩個句子的相似性
let sen1 = "移動互聯網";
let sen2 = "互聯網";
synonyms.compare(sen1, sen2)
.then(function(similarity){
// do your magic
});
- 返回值 float
相似度是在置信區間[0~1]的float值,越接近於1越相似。
Contribute
admin/test.sh # 單元測試
Give credits to
Statement
Synonyms發佈證書 GPL3.0。數據和程序可用於研究和商業產品,必須註明引用和地址,比如發佈的任何媒體、期刊、雜誌或博客等內容。
@online{Synonyms:hain2017,
author = {Hai Liang Wang, Hu Ying Xi},
title = {中文近義詞工具包Synonyms},
year = 2017,
url = {https://github.com/huyingxi/Synonyms},
urldate = {2017-09-27}
}