Synonyms 中文近義詞工具包 -- 支持文本對齊,推薦算法,相似度計算,語義偏移,關鍵字提取,概念提取,自動摘要,搜索引擎等

Synonyms 入門介紹

   

Chinese Synonyms for Natural Language Processing and Understanding.

最好的中文近義詞工具包。

 

synonyms可以用於自然語言理解的很多任務:文本對齊,推薦算法,相似度計算,語義偏移,關鍵字提取,概念提取,自動摘要,搜索引擎等。

 

 

Welcome

npm install node-synonyms

本項目爲 Synonyms 的 Node.js 版工具包,穩定版本爲 v1,在Mac OSXLinux下完成測試。目前打包後,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

nodejieba

fast-levenshtein

compute-cosine-distance

node-word2vec-reader

 

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}
}

 

Keywords

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章