日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java分布式中文分词组件 - word分词(转自:https://github.com/ysc/word)

發布時間:2024/3/12 java 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java分布式中文分词组件 - word分词(转自:https://github.com/ysc/word) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

###Java分布式中文分詞組件 - word分詞

####word分詞是一個Java實現的分布式的中文分詞組件,提供了多種基于詞典的分詞算法,并利用ngram模型來消除歧義。能準確識別英文、數字,以及日期、時間等數量詞,能識別人名、地名、組織機構名等未登錄詞。能通過自定義配置文件來改變組件行為,能自定義用戶詞庫、自動檢測詞庫變化、支持大規模分布式環境,能靈活指定多種分詞算法,能使用refine功能靈活控制分詞結果,還能使用詞頻統計、詞性標注、同義標注、反義標注、拼音標注等功能。提供了10種分詞算法,還提供了10種文本相似度算法,同時還無縫和Lucene、Solr、ElasticSearch、Luke集成。注意:word1.3需要JDK1.8

###捐贈致謝

###API在線文檔:

word 1.0 API

word 1.1 API

word 1.2 API

word 1.3 API

###編譯好的jar包下載

###Maven依賴:

在pom.xml中指定dependency,可用版本有1.0、1.1、1.2、1.3、1.3.1:

<dependencies><dependency><groupId>org.apdplat</groupId><artifactId>word</artifactId><version>1.3</version></dependency> </dependencies>

word 1.3.1這個版本是從代碼分支ForElasticsearch1.7.2中編譯出來的,主要目的是支持 與lucene4.10.4、solr4.10.4和elasticsearch1.7.2兼容的版本。

###分詞使用方法:

####1、快速體驗

運行項目根目錄下的腳本demo-word.bat可以快速體驗分詞效果 用法: command [text] [input] [output] 命令command的可選值為:demo、text、file demo text 楊尚川是APDPlat應用級產品開發平臺的作者 file d:/text.txt d:/word.txt exit

####2、對文本進行分詞

移除停用詞:List<Word> words = WordSegmenter.seg("楊尚川是APDPlat應用級產品開發平臺的作者"); 保留停用詞:List<Word> words = WordSegmenter.segWithStopWords("楊尚川是APDPlat應用級產品開發平臺的作者");System.out.println(words);輸出: 移除停用詞:[楊尚川, apdplat, 應用級, 產品, 開發平臺, 作者] 保留停用詞:[楊尚川, 是, apdplat, 應用級, 產品, 開發平臺, 的, 作者]

####3、對文件進行分詞

String input = "d:/text.txt"; String output = "d:/word.txt"; 移除停用詞:WordSegmenter.seg(new File(input), new File(output)); 保留停用詞:WordSegmenter.segWithStopWords(new File(input), new File(output));

####4、自定義配置文件

默認配置文件為類路徑下的word.conf,打包在word-x.x.jar中 自定義配置文件為類路徑下的word.local.conf,需要用戶自己提供 如果自定義配置和默認配置相同,自定義配置會覆蓋默認配置 配置文件編碼為UTF-8

####5、自定義用戶詞庫

自定義用戶詞庫為一個或多個文件夾或文件,可以使用絕對路徑或相對路徑 用戶詞庫由多個詞典文件組成,文件編碼為UTF-8 詞典文件的格式為文本文件,一行代表一個詞 可以通過系統屬性或配置文件的方式來指定路徑,多個路徑之間用逗號分隔開 類路徑下的詞典文件,需要在相對路徑前加入前綴classpath:指定方式有三種:指定方式一,編程指定(高優先級):WordConfTools.set("dic.path", "classpath:dic.txt,d:/custom_dic");DictionaryFactory.reload();//更改詞典路徑之后,重新加載詞典指定方式二,Java虛擬機啟動參數(中優先級):java -Ddic.path=classpath:dic.txt,d:/custom_dic指定方式三,配置文件指定(低優先級):使用類路徑下的文件word.local.conf來指定配置信息dic.path=classpath:dic.txt,d:/custom_dic如未指定,則默認使用類路徑下的dic.txt詞典文件

####6、自定義停用詞詞庫

使用方式和自定義用戶詞庫類似,配置項為: stopwords.path=classpath:stopwords.txt,d:/custom_stopwords_dic

####7、自動檢測詞庫變化

可以自動檢測自定義用戶詞庫和自定義停用詞詞庫的變化 包含類路徑下的文件和文件夾、非類路徑下的絕對路徑和相對路徑 如: classpath:dic.txt,classpath:custom_dic_dir, d:/dic_more.txt,d:/DIC_DIR,D:/DIC2_DIR,my_dic_dir,my_dic_file.txtclasspath:stopwords.txt,classpath:custom_stopwords_dic_dir, d:/stopwords_more.txt,d:/STOPWORDS_DIR,d:/STOPWORDS2_DIR,stopwords_dir,remove.txt

####8、顯式指定分詞算法

對文本進行分詞時,可顯式指定特定的分詞算法,如: WordSegmenter.seg("APDPlat應用級產品開發平臺", SegmentationAlgorithm.BidirectionalMaximumMatching);SegmentationAlgorithm的可選類型為: 正向最大匹配算法:MaximumMatching 逆向最大匹配算法:ReverseMaximumMatching 正向最小匹配算法:MinimumMatching 逆向最小匹配算法:ReverseMinimumMatching 雙向最大匹配算法:BidirectionalMaximumMatching 雙向最小匹配算法:BidirectionalMinimumMatching 雙向最大最小匹配算法:BidirectionalMaximumMinimumMatching 全切分算法:FullSegmentation 最少詞數算法:MinimalWordCount 最大Ngram分值算法:MaxNgramScore

####9、分詞效果評估

運行項目根目錄下的腳本evaluation.bat可以對分詞效果進行評估 評估采用的測試文本有253 3709行,共2837 4490個字符 評估結果位于target/evaluation目錄下: corpus-text.txt為分好詞的人工標注文本,詞之間以空格分隔 test-text.txt為測試文本,是把corpus-text.txt以標點符號分隔為多行的結果 standard-text.txt為測試文本對應的人工標注文本,作為分詞是否正確的標準 result-text-***.txt,***為各種分詞算法名稱,這是word分詞結果 perfect-result-***.txt,***為各種分詞算法名稱,這是分詞結果和人工標注標準完全一致的文本 wrong-result-***.txt,***為各種分詞算法名稱,這是分詞結果和人工標注標準不一致的文本

####10、分布式中文分詞器

1、在自定義配置文件word.conf或word.local.conf中指定所有的配置項*.path使用HTTP資源,同時指定配置項redis.* 2、配置并啟動提供HTTP資源的web服務器,將項目:https://github.com/ysc/word_web部署到tomcat 3、配置并啟動redis服務器

####11、詞性標注

將分詞結果作為輸入參數,調用PartOfSpeechTagging類的process方法,詞性保存在Word類的partOfSpeech字段中 如下所示: List<Word> words = WordSegmenter.segWithStopWords("我愛中國"); System.out.println("未標注詞性:"+words); //詞性標注 PartOfSpeechTagging.process(words); System.out.println("標注詞性:"+words); 輸出內容: 未標注詞性:[我, 愛, 中國] 標注詞性:[我/r, 愛/v, 中國/ns]

####12、refine

我們看一個切分例子: List<Word> words = WordSegmenter.segWithStopWords("我國工人階級和廣大勞動群眾要更加緊密地團結在黨中央周圍"); System.out.println(words); 結果如下: [我國, 工人階級, 和, 廣大, 勞動群眾, 要, 更加, 緊密, 地, 團結, 在, 黨中央, 周圍] 假如我們想要的切分結果是: [我國, 工人, 階級, 和, 廣大, 勞動, 群眾, 要, 更加, 緊密, 地, 團結, 在, 黨中央, 周圍] 也就是要把“工人階級”細分為“工人 階級”,把“勞動群眾”細分為“勞動 群眾”,那么我們該怎么辦呢? 我們可以通過在word.refine.path配置項指定的文件classpath:word_refine.txt中增加以下內容: 工人階級=工人 階級 勞動群眾=勞動 群眾 然后,我們對分詞結果進行refine: words = WordRefiner.refine(words); System.out.println(words); 這樣,就能達到我們想要的效果: [我國, 工人, 階級, 和, 廣大, 勞動, 群眾, 要, 更加, 緊密, 地, 團結, 在, 黨中央, 周圍]我們再看一個切分例子: List<Word> words = WordSegmenter.segWithStopWords("在實現“兩個一百年”奮斗目標的偉大征程上再創新的業績"); System.out.println(words); 結果如下: [在, 實現, 兩個, 一百年, 奮斗目標, 的, 偉大, 征程, 上, 再創, 新的, 業績] 假如我們想要的切分結果是: [在, 實現, 兩個一百年, 奮斗目標, 的, 偉大征程, 上, 再創, 新的, 業績] 也就是要把“兩個 一百年”合并為“兩個一百年”,把“偉大, 征程”合并為“偉大征程”,那么我們該怎么辦呢? 我們可以通過在word.refine.path配置項指定的文件classpath:word_refine.txt中增加以下內容: 兩個 一百年=兩個一百年 偉大 征程=偉大征程 然后,我們對分詞結果進行refine: words = WordRefiner.refine(words); System.out.println(words); 這樣,就能達到我們想要的效果: [在, 實現, 兩個一百年, 奮斗目標, 的, 偉大征程, 上, 再創, 新的, 業績]

####13、同義標注

List<Word> words = WordSegmenter.segWithStopWords("楚離陌千方百計為無情找回記憶"); System.out.println(words); 結果如下: [楚離陌, 千方百計, 為, 無情, 找回, 記憶] 做同義標注: SynonymTagging.process(words); System.out.println(words); 結果如下: [楚離陌, 千方百計[久有存心, 化盡心血, 想方設法, 費盡心機], 為, 無情, 找回, 記憶[影象]] 如果啟用間接同義詞: SynonymTagging.process(words, false); System.out.println(words); 結果如下: [楚離陌, 千方百計[久有存心, 化盡心血, 想方設法, 費盡心機], 為, 無情, 找回, 記憶[影像, 影象]]List<Word> words = WordSegmenter.segWithStopWords("手勁大的老人往往更長壽"); System.out.println(words); 結果如下: [手勁, 大, 的, 老人, 往往, 更, 長壽] 做同義標注: SynonymTagging.process(words); System.out.println(words); 結果如下: [手勁, 大, 的, 老人[白叟], 往往[常常, 每每, 經常], 更, 長壽[長命, 龜齡]] 如果啟用間接同義詞: SynonymTagging.process(words, false); System.out.println(words); 結果如下: [手勁, 大, 的, 老人[白叟], 往往[一樣平常, 一般, 凡是, 尋常, 常常, 常日, 平凡, 平居, 平常, 平日, 平時, 往常, 日常, 日常平凡, 時常, 普通, 每每, 泛泛, 素日, 經常, 通俗, 通常], 更, 長壽[長命, 龜齡]]以詞“千方百計”為例: 可以通過Word的getSynonym()方法獲取同義詞如: System.out.println(word.getSynonym()); 結果如下: [久有存心, 化盡心血, 想方設法, 費盡心機] 注意:如果沒有同義詞,則getSynonym()返回空集合:Collections.emptyList()間接同義詞和直接同義詞的區別如下: 假設: A和B是同義詞,A和C是同義詞,B和D是同義詞,C和E是同義詞 則: 對于A來說,A B C是直接同義詞 對于B來說,A B D是直接同義詞 對于C來說,A C E是直接同義詞 對于A B C來說,A B C D E是間接同義詞

####14、反義標注

List<Word> words = WordSegmenter.segWithStopWords("5月初有哪些電影值得觀看"); System.out.println(words); 結果如下: [5, 月初, 有, 哪些, 電影, 值得, 觀看] 做反義標注: AntonymTagging.process(words); System.out.println(words); 結果如下: [5, 月初[月底, 月末, 月終], 有, 哪些, 電影, 值得, 觀看]List<Word> words = WordSegmenter.segWithStopWords("由于工作不到位、服務不完善導致顧客在用餐時發生不愉快的事情,餐廳方面應該向顧客作出真誠的道歉,而不是敷衍了事。"); System.out.println(words); 結果如下: [由于, 工作, 不到位, 服務, 不完善, 導致, 顧客, 在, 用餐, 時, 發生, 不愉快, 的, 事情, 餐廳, 方面, 應該, 向, 顧客, 作出, 真誠, 的, 道歉, 而不是, 敷衍了事] 做反義標注: AntonymTagging.process(words); System.out.println(words); 結果如下: [由于, 工作, 不到位, 服務, 不完善, 導致, 顧客, 在, 用餐, 時, 發生, 不愉快, 的, 事情, 餐廳, 方面, 應該, 向, 顧客, 作出, 真誠[糊弄, 虛偽, 虛假, 險詐], 的, 道歉, 而不是, 敷衍了事[一絲不茍, 兢兢業業, 盡心竭力, 竭盡全力, 精益求精, 誠心誠意]]以詞“月初”為例: 可以通過Word的getAntonym()方法獲取反義詞如: System.out.println(word.getAntonym()); 結果如下: [月底, 月末, 月終] 注意:如果沒有反義詞,getAntonym()返回空集合:Collections.emptyList()

####15、拼音標注

List<Word> words = WordSegmenter.segWithStopWords("《速度與激情7》的中國內地票房自4月12日上映以來,在短短兩周內突破20億人民幣"); System.out.println(words); 結果如下: [速度, 與, 激情, 7, 的, 中國, 內地, 票房, 自, 4月, 12日, 上映, 以來, 在, 短短, 兩周, 內, 突破, 20億, 人民幣] 執行拼音標注: PinyinTagging.process(words); System.out.println(words); 結果如下: [速度 sd sudu, 與 y yu, 激情 jq jiqing, 7, 的 d de, 中國 zg zhongguo, 內地 nd neidi, 票房 pf piaofang, 自 z zi, 4月, 12日, 上映 sy shangying, 以來 yl yilai, 在 z zai, 短短 dd duanduan, 兩周 lz liangzhou, 內 n nei, 突破 tp tupo, 20億, 人民幣 rmb renminbi]以詞“速度”為例: 可以通過Word的getFullPinYin()方法獲取完整拼音如:sudu 可以通過Word的getAcronymPinYin()方法獲取首字母縮略拼音如:sd

####16、Lucene插件:

1、構造一個word分析器ChineseWordAnalyzer Analyzer analyzer = new ChineseWordAnalyzer(); 如果需要使用特定的分詞算法,可通過構造函數來指定: Analyzer analyzer = new ChineseWordAnalyzer(SegmentationAlgorithm.FullSegmentation); 如不指定,默認使用雙向最大匹配算法:SegmentationAlgorithm.BidirectionalMaximumMatching 可用的分詞算法參見枚舉類:SegmentationAlgorithm2、利用word分析器切分文本 TokenStream tokenStream = analyzer.tokenStream("text", "楊尚川是APDPlat應用級產品開發平臺的作者"); //準備消費 tokenStream.reset(); //開始消費 while(tokenStream.incrementToken()){//詞CharTermAttribute charTermAttribute = tokenStream.getAttribute(CharTermAttribute.class);//詞在文本中的起始位置OffsetAttribute offsetAttribute = tokenStream.getAttribute(OffsetAttribute.class);//第幾個詞PositionIncrementAttribute positionIncrementAttribute = tokenStream.getAttribute(PositionIncrementAttribute.class);LOGGER.info(charTermAttribute.toString()+" ("+offsetAttribute.startOffset()+" - "+offsetAttribute.endOffset()+") "+positionIncrementAttribute.getPositionIncrement()); } //消費完畢 tokenStream.close();3、利用word分析器建立Lucene索引 Directory directory = new RAMDirectory(); IndexWriterConfig config = new IndexWriterConfig(analyzer); IndexWriter indexWriter = new IndexWriter(directory, config);4、利用word分析器查詢Lucene索引 QueryParser queryParser = new QueryParser("text", analyzer); Query query = queryParser.parse("text:楊尚川"); TopDocs docs = indexSearcher.search(query, Integer.MAX_VALUE);

####17、Solr插件:

1、下載word-1.3.jar 下載地址:http://search.maven.org/remotecontent?filepath=org/apdplat/word/1.3/word-1.3.jar2、創建目錄solr-5.2.0/example/solr/lib,將word-1.3.jar復制到lib目錄3、配置schema指定分詞器 將solr-5.2.0/example/solr/collection1/conf/schema.xml文件中所有的 <tokenizer class="solr.WhitespaceTokenizerFactory"/>和 <tokenizer class="solr.StandardTokenizerFactory"/>全部替換為 <tokenizer class="org.apdplat.word.solr.ChineseWordTokenizerFactory"/> 并移除所有的filter標簽4、如果需要使用特定的分詞算法: <tokenizer class="org.apdplat.word.solr.ChineseWordTokenizerFactory" segAlgorithm="ReverseMinimumMatching"/> segAlgorithm可選值有: 正向最大匹配算法:MaximumMatching 逆向最大匹配算法:ReverseMaximumMatching 正向最小匹配算法:MinimumMatching 逆向最小匹配算法:ReverseMinimumMatching 雙向最大匹配算法:BidirectionalMaximumMatching 雙向最小匹配算法:BidirectionalMinimumMatching 雙向最大最小匹配算法:BidirectionalMaximumMinimumMatching 全切分算法:FullSegmentation 最少詞數算法:MinimalWordCount 最大Ngram分值算法:MaxNgramScore 如不指定,默認使用雙向最大匹配算法:BidirectionalMaximumMatching5、如果需要指定特定的配置文件: <tokenizer class="org.apdplat.word.solr.ChineseWordTokenizerFactory" segAlgorithm="ReverseMinimumMatching"conf="solr-5.2.0/example/solr/nutch/conf/word.local.conf"/> word.local.conf文件中可配置的內容見 word-1.3.jar 中的word.conf文件 如不指定,使用默認配置文件,位于 word-1.3.jar 中的word.conf文件

####18、ElasticSearch插件:

1、打開命令行并切換到elasticsearch的bin目錄 cd elasticsearch-2.1.1/bin2、運行plugin腳本安裝word分詞插件: ./plugin install http://apdplat.org/word/archive/v1.4.zip安裝的時候注意:如果提示:ERROR: failed to download 或者 Failed to install word, reason: failed to download或者 ERROR: incorrect hash (SHA1)則重新再次運行命令,如果還是不行,多試兩次如果是elasticsearch1.x系列版本,則使用如下命令: ./plugin -u http://apdplat.org/word/archive/v1.3.1.zip -i word3、修改文件elasticsearch-2.1.1/config/elasticsearch.yml,新增如下配置: index.analysis.analyzer.default.type : "word" index.analysis.tokenizer.default.type : "word"4、啟動ElasticSearch測試效果,在Chrome瀏覽器中訪問: http://localhost:9200/_analyze?analyzer=word&text=楊尚川是APDPlat應用級產品開發平臺的作者5、自定義配置 修改配置文件elasticsearch-2.1.1/plugins/word/word.local.conf6、指定分詞算法 修改文件elasticsearch-2.1.1/config/elasticsearch.yml,新增如下配置: index.analysis.analyzer.default.segAlgorithm : "ReverseMinimumMatching" index.analysis.tokenizer.default.segAlgorithm : "ReverseMinimumMatching"這里segAlgorithm可指定的值有: 正向最大匹配算法:MaximumMatching 逆向最大匹配算法:ReverseMaximumMatching 正向最小匹配算法:MinimumMatching 逆向最小匹配算法:ReverseMinimumMatching 雙向最大匹配算法:BidirectionalMaximumMatching 雙向最小匹配算法:BidirectionalMinimumMatching 雙向最大最小匹配算法:BidirectionalMaximumMinimumMatching 全切分算法:FullSegmentation 最少詞數算法:MinimalWordCount 最大Ngram分值算法:MaxNgramScore 如不指定,默認使用雙向最大匹配算法:BidirectionalMaximumMatching

####19、Luke插件:

1、下載http://luke.googlecode.com/files/lukeall-4.0.0-ALPHA.jar(國內不能訪問)2、下載并解壓Java中文分詞組件word-1.0-bin.zip:http://pan.baidu.com/s/1dDziDFz3、將解壓后的 Java中文分詞組件word-1.0-bin/word-1.0 文件夾里面的4個jar包解壓到當前文件夾 用壓縮解壓工具如winrar打開lukeall-4.0.0-ALPHA.jar,將當前文件夾里面除了META-INF文件夾、.jar、 .bat、.html、word.local.conf文件外的其他所有文件拖到lukeall-4.0.0-ALPHA.jar里面4、執行命令 java -jar lukeall-4.0.0-ALPHA.jar 啟動luke,在Search選項卡的Analysis里面 就可以選擇 org.apdplat.word.lucene.ChineseWordAnalyzer 分詞器了5、在Plugins選項卡的Available analyzers found on the current classpath里面也可以選擇 org.apdplat.word.lucene.ChineseWordAnalyzer 分詞器注意:如果你要自己集成word分詞器的其他版本,在項目根目錄下運行mvn install編譯項目,然后運行命令 mvn dependency:copy-dependencies復制依賴的jar包,接著在target/dependency/目錄下就會有所有 的依賴jar包。其中target/dependency/slf4j-api-1.6.4.jar是word分詞器使用的日志框架, target/dependency/logback-classic-0.9.28.jar和 target/dependency/logback-core-0.9.28.jar是word分詞器推薦使用的日志實現,日志實現的配置文件 路徑位于target/classes/logback.xml,target/word-1.3.jar是word分詞器的主jar包,如果需要 自定義詞典,則需要修改分詞器配置文件target/classes/word.conf

已經集成好的Luke插件下載(適用于lucene4.0.0) :lukeall-4.0.0-ALPHA-with-word-1.0.jar

已經集成好的Luke插件下載(適用于lucene4.10.3):lukeall-4.10.3-with-word-1.2.jar

####20、通過計算詞的語境來獲得相關詞:

我們如何通過計算詞的語境來獲得相關詞呢?

語境的定義是:在一段文本中,任意一個詞的語境由它的前N個詞和后N個詞組成。 相關詞的定義是:如果兩個詞的語境越相似,那么這兩個詞就越相似,也就越相關。

算法由兩個步驟組成:

1、從大規模語料庫中計算每一個詞的語境,并使用詞向量來表示語境。 2、把求兩個詞的相似度的問題轉換為求這兩個詞的語境的相似度的問題。 通過計算語境的相似度,就可得到詞的相似度,越相似的詞就越相關。

使用方法如下:

1、使用word分詞內置語料庫:運行word分詞項目根目錄下的腳本 demo-word-vector-corpus.bat 或 demo-word-vector-corpus.sh 2、使用自己的文本內容:運行word分詞項目根目錄下的腳本 demo-word-vector-file.bat 或 demo-word-vector-file.sh由于語料庫很大,所以啟動的時間會很長,請耐心等待,下面以例子來說明: 比如我們想分析 蘭州 這個詞的相關詞有哪些,我們運行腳本 demo-word-vector-corpus.sh ,啟動成功之后命令行提示:開始初始化模型 模型初始化完成 可通過輸入命令sa=cos來指定相似度算法,可用的算法有:1、sa=cos,余弦相似度2、sa=edi,編輯距離3、sa=euc,歐幾里得距離4、sa=sim,簡單共有詞5、sa=jac,Jaccard相似性系數6、sa=man,曼哈頓距離7、sa=shh,SimHash + 漢明距離8、sa=ja,Jaro距離9、sa=jaw,Jaro–Winkler距離10、sa=sd,S?rensen–Dice系數 可通過輸入命令limit=15來指定顯示結果條數 可通過輸入命令exit退出程序 輸入要查詢的詞或命令:我們輸入 蘭州 后回車,結果顯示:蘭州 的相關詞(EditDistanceTextSimilarity): ----------------------------------------------------------1、蘭州 1.02、北京 0.213、福州 0.24、太原 0.195、成都 0.176、西安 0.177、哈爾濱 0.178、南寧 0.179、貴陽 0.1610、慶陽 0.1511、沈陽 0.1412、合肥 0.1413、大同 0.1414、拉薩 0.1315、西寧 0.13 ---------------------------------------------------------- 這里顯示的結果就是 蘭州 這個詞的相關詞,詞后面跟的是相關度分值, 蘭州 和 蘭州 是同一個詞,相關度百分之百,自然是1分。從這個結果我們來分析,這些詞憑什么相關呢?線索在哪里?首先這些詞的詞性都是名詞; 其次這些詞都是地名而且是大城市名; 從這里我們也可以看到一個有意思的現象,同一詞性比如地名的用法往往保持一致。相關詞是從語境推導得到的,語境中詞后面跟的數字是權重,權重是1/N的累加值 下面我們看看這些詞的語境:蘭州 : [軍區 1.0, 甘肅 0.78205127, 新區 0.7692308, 大學 0.42307693, 甘肅蘭州 0.41025642, 貨車 0.3846154, 西安 0.32051283, 本報 0.2948718, 新華社 0.2820513, 蘭州新區 0.26923078, 召開 0.23076923, 發往 0.21794872, 中國 0.20512821, 蘭州 0.20512821, 火車站 0.20512821, 鐵路 0.17948718, 參加 0.15384616, 西寧 0.15384616, 方向 0.15384616, 成都 0.14102565, 警察 0.14102565, 建設 0.12820514, 市委 0.12820514, 來到 0.12820514, 一家 0.12820514, 中心 0.115384616, 煉油廠 0.102564104, 進入 0.102564104, 來自 0.102564104, 舉行 0.102564104] 北京 : [新華社 1.0, 本報 0.7119143, 舉行 0.19384204, 上海 0.17831326, 時間 0.16385542, 鐵路局 0.1394913, 西站 0.13226238, 青年報 0.12717536, 晨報 0.11700134, 市委 0.1145917, 地區 0.11218206, 召開 0.10200803, 城市 0.08299866, 目前 0.07951807, 來到 0.06961178, 軍區 0.06827309, 國際 0.066398926, 中心 0.063453816, 北京時間 0.06184739, 人民 0.059973225, 工作 0.05863454, 地鐵 0.057563588, 北京鐵路局 0.056492638, 醫院 0.055421688, 飛往 0.05381526, 首都 0.053547524, 中國 0.053547524, 其中 0.05274431, 今天 0.052208837, 衛視 0.05167336] 福州 : [火車站 1.0, 新區 0.46666667, 福州火車站 0.45555556, 晚報 0.2962963, 記者 0.2777778, 打工 0.27407408, 來到 0.24814814, 市民 0.23333333, 本報 0.22222222, 大學 0.21851853, 市區 0.2074074, 市委 0.19259259, 舉行 0.19259259, 鼓樓區 0.18518518, 網友 0.18148148, 到達 0.17037037, 開往 0.16296296, 目前 0.14074074, 分行 0.14074074, 一家 0.12962963, 全市 0.12962963, 東街口 0.12222222, 福州晚報 0.12222222, 新華社 0.11851852, 鐵路 0.11851852, 召開 0.11481482, 前往 0.11481482, 發展 0.11481482, 推進 0.11111111, 福州 0.11111111] 太原 : [山西 1.0, 山西太原 0.6136364, 本報 0.39772728, 新華社 0.3409091, 火車站 0.26136363, 濟南 0.25, 鐵路 0.23863636, 北京 0.22727273, 推出 0.1590909, 國際 0.1590909, 返回 0.14772727, 剛玉 0.13636364, 來自 0.13636364, 發布 0.13636364, 打工 0.125, 中心 0.125, 市委 0.11363637, 銀行 0.11363637, 鐵路局 0.10227273, 西安 0.09090909, 集團 0.09090909, 公安 0.09090909, 開往 0.09090909, 比如 0.07954545, 金融 0.07954545, 火車票 0.07954545, 大同 0.06818182, 山西省 0.06818182, 軍分區 0.06818182, 離開 0.06818182] 成都 : [商報 1.0, 成都商報 0.4117647, 軍區 0.1875, 鐵路局 0.17830883, 北京 0.17463236, 本報 0.17095588, 重慶 0.15441176, 告訴 0.15441176, 交警 0.14338236, 方向 0.1360294, 記者 0.13419117, 平原 0.121323526, 四川 0.1194853, 長沙 0.11764706, 理工大學 0.0992647, 來自 0.09375, 新華社 0.09191176, 開往 0.090073526, 成都鐵路局 0.08455882, 鐵路 0.080882356, 召開 0.07904412, 市民 0.075367644, 市委 0.073529415, 公司 0.07169118, 廣州 0.07169118, 西安 0.0680147, 郫縣 0.060661763, 打工 0.060661763, 市區 0.05882353, 晚報 0.05882353] 西安 : [火車站 1.0, 事變 0.75, 交通 0.7058824, 建設 0.5882353, 地鐵 0.5882353, >咸陽 0.5588235, 來到 0.5294118, 市民 0.50735295, 大學 0.5, 鐵路 0.5, 代表團 0.5, 鐵路局 0.49264705, 公司 0.4852941, 武漢 0.4632353, 曲江 0.44117647, 供電 0.42647058, 新華社 0.4117647, 西安火車站 0.4117647, 北京 0.3602941, 交大 0.3602941, 本報 0.34558824, 西安事變 0.3382353, 城市 0.31617647, 城區 0.31617647, 落戶 0.30882353, 市委 0.29411766, 國際 0.2867647, 城東 0.2867647, 成都 0.2720588, 舉行 0.25] 哈爾濱 : [理工大學 1.0, 火車站 0.41584158, 哈爾濱理工大學 0.36138615, 工業 0.25742576, 方向 0.23762377, 新華社 0.20792079, 開往 0.18811882, 哈爾濱火車站 0.18316832, 位于 0.17821783, 大學 0.17326732, 鐵路局 0.15841584, 來自 0.15346535, 最低 0.14356436, 北京 0.12871288, 本報 0.12376238, 黑龍江省 0.12376238, 發布 0.11386139, 中國 0.10891089, 飛往 0.0990099, 黑龍>江 0.08415841, 沈陽 0.07920792, 工程 0.07920792, 附近 0.074257426, 市委 0.06930693, 飛機 0.06930693, 上海 0.06930693, 考生 0.06930693, 進入 0.06930693, 停止 0.06930693, 經濟 0.06435644] 南寧 : [廣西 1.0, 鐵路局 0.8, 廣西南寧 0.62222224, 本報 0.54444444, 新華社 0.36666667, 南寧鐵路局 0.31111112, 市委 0.26666668, 柳州 0.18888889, 桂林 0.17777778, 鐵路 0.15555556, 興>寧區 0.14444445, 來到 0.11111111, 開往 0.11111111, 前往 0.11111111, 公安 0.11111111, 工作 0.11111111, 運往 0.11111111, 城市 0.08888889, 美麗 0.08888889, 召開 0.08888889, 從事 0.08888889, 官塘 0.08888889, 樓市 0.08888889, 分局 0.07777778, 南寧市委 0.07777778, 動車 0.07777778, 發生 0.07777778, 舉行 0.07777778, 西鄉 0.06666667, 市長 0.06666667] 貴陽 : [本報 1.0, 重慶 0.73333335, 新華社 0.46666667, 方向 0.43333334, 前往 0.4, 哥倆 0.4, 城區 0.4, 老家 0.33333334, 西安 0.26666668, 成都 0.26666668, 街頭 0.26666668, 晚報 0.26666668, 無關 0.26666668, 杭州 0.23333333, 涉及 0.2, 以及 0.2, 市內 0.2, 網友 0.2, 鄭州 0.16666667, 南寧 0.16666667, 長沙 0.16666667, 武漢 0.16666667, 擺攤 0.16666667, 市委 0.13333334, 昆明 0.13333334, 安順 0.13333334, 來到 0.13333334, 爭霸 0.13333334, 四強 0.13333334, 鐵路 0.13333334] 慶陽 : [甘肅 1.0, 甘肅慶陽 0.8, 甘肅省 0.4, 地區 0.4, 老區 0.3, 森林 0.2, 平涼 0.2, 鎮遠縣 0.1, 革命 0.1, 韓鳳廷 0.1, 交通處 0.1, 蘭州森林大隊 0.1, 大隊 0.1, 蘭州 0.1, 西峰 0.1, 發>送 0.1, 一輛 0.1, 牌照 0.1, 來自 0.1] 沈陽 : [軍區 1.0, 晚報 0.5123967, 方向 0.3181818, 本報 0.27272728, 沈陽晚報 0.23553719, 新華社 0.20661157, 沈陽軍區 0.18595041, 軍區隊 0.15289256, 海獅隊 0.14876033, 自動化所 0.14049587, 此次 0.14049587, 經濟區 0.1322314, 中國 0.12809917, >大連 0.12809917, 大爺 0.12809917, 市委 0.12396694, 一家 0.11570248, 高速 0.11570248, 國際 0.11157025, 火車票 0.11157025, 法庫 0.10743801, 大學 0.10330579, 長春 0.10330579, 直達 0.09917355, 深圳 0.09090909, 上海 0.08677686, 記者 0.08677686, 海獅 0.08264463, 大媽 0.08264463, 兩位 0.08264463] 合肥 : [火車站 1.0, 市民 0.8181818, 市區 0.53333336, 樓市 0.4848485, 合肥火車站 0.4121212, 鐵路 0.38787878, 安徽 0.36969697, 到達 0.36363637, 市場 0.34545454, 上周 0.3030303, 蕪湖 0.2969697, 召開 0.28484848, 記者 0.27272728, 成為 0.27272728, 來到 0.26666668, 安徽合肥 0.24242425, 城市 0.24242425, 經濟圈 0.24242425, 公交 0.24242425, 目前 0.23636363, 本報 0.21818182, 今年 0.21818182, 起飛 0.21818182, 汽車 0.21212122, 物質 0.2060606, 合肥樓市 0.2060606, 空港 0.2060606, 工業 0.19393939, 標題 0.18181819, 野生 0.16969697] 大同 : [大學 1.0, 鐵路 0.52380955, 山西 0.5, 證券 0.33333334, 大同大學 0.33333334, 山西省 0.23809524, 此次 0.23809524, 山西大同 0.1904762, 世界 0.1904762, 世界大同 0.1904762, 街道 0.16666667, 太原 0.14285715, 市委 0.14285715, 上海 0.14285715, 派出所 0.14285715, 公安處 0.14285715, 日方 0.14285715, 轉發 0.14285715, 運城 0.11904762, 軍分區 0.0952381, 礦務局 0.0952381, 小學 0.0952381, 參加 0.0952381, 項目 0.0952381, 中學 0.0952381, 水廠 0.0952381, 車輛段 0.0952381, 開往 0.0952381, 大同證券 0.0952381, 戰役 0.071428575] 拉薩 : [火車站 1.0, 新華社 0.91935486, 西藏 0.7580645, 市區 0.61290324, 本報 0.58064514, 召開 0.5645161, 海關 0.5483871, 城市 0.48387095, 拉薩火車站 0.4032258, 市委 0.38709676, 成都 0.37096775, 貢嘎 0.3548387, 開幕 0.32258064, 發布 0.30645162, 西藏拉薩 0.2580645, 會議 0.2580645, 機場 0.22580644, 閉幕 0.22580644, 隆重 0.22580644, 林芝 0.20967741, 舉行 0.19354838, 開通 0.19354838, 營業部 0.19354838, 市民 0.17741935, 市場 0.17741935, 經濟 0.17741935, 中心 0.17741935, 空氣 0.17741935, 成為 0.17741935, 人民 0.16129032] 西寧 : [新華社 1.0, 上海 0.8235294, 蘭州 0.3529412, 輾轉 0.3529412, 本報 0.29411766, 青海 0.29411766, 考察 0.23529412, 當街 0.23529412, 特鋼 0.1764706, 方向 0.1764706, 分行 0.1764706, 索賄 0.1764706, 北京 0.14705883, 但是 0.14705883, 拉薩 0.11764706, 我們 0.11764706, 標題 0.11764706, 交警 0.11764706, 代表團 0.11764706, 處理 0.0882353, 銀川 0.0882353, 車票 0.0882353, 籌建 0.0882353, 中轉 0.0882353, 參加 0.0882353, 一月 0.05882353, 試驗局 0.05882353, 二月 0.05882353, 地區 0.05882353, 嚴肅 0.05882353] 最后我們看一下分別使用7種相似度算法算出來的 蘭州 的相關詞:---------------------------------------------------------- 蘭州 的相關詞(CosineTextSimilarity):1、蘭州 1.02、沈陽 0.53、北京軍區 0.474、后勤部 0.465、沈陽軍區 0.466、總醫院 0.467、新疆軍區 0.468、司令員 0.429、甘肅蘭州 0.4210、蘭州新區 0.4211、某師 0.3912、鄭蒲港 0.3813、西咸 0.3814、天水 0.3715、鄭東 0.37 耗時:25秒,572毫秒 ---------------------------------------------------------- 蘭州 的相關詞(EditDistanceTextSimilarity):1、蘭州 1.02、北京 0.213、福州 0.24、太原 0.195、成都 0.176、南寧 0.177、西安 0.178、哈爾濱 0.179、貴陽 0.1610、慶陽 0.1511、合肥 0.1412、大同 0.1413、沈陽 0.1414、珀斯 0.1315、拉薩 0.13 耗時:44秒,253毫秒 ---------------------------------------------------------- 蘭州 的相關詞(EuclideanDistanceTextSimilarity):1、蘭州 1.02、后勤部 0.373、北京軍區 0.374、新疆軍區 0.375、沈陽 0.376、沈陽軍區 0.377、總醫院 0.378、上海浦東新區 0.369、鄭蒲港 0.3610、浦東新區 0.3611、甘肅蘭州 0.3612、西咸 0.3613、西咸新區 0.3614、正定新區 0.3615、司令員 0.36 耗時:24秒,710毫秒 ---------------------------------------------------------- 蘭州 的相關詞(SimpleTextSimilarity):1、蘭州 1.02、福州 0.363、西安 0.334、李紅旗 0.335、中國金融信息中心 0.336、南特 0.327、卡塔赫納 0.328、哈爾濱 0.39、武漢 0.310、戴克瑞 0.311、楚雄州 0.2912、朱夢魁 0.2913、岳菲菲 0.2914、長沙 0.2815、呂國慶 0.28 耗時:21秒,918毫秒 ---------------------------------------------------------- 蘭州 的相關詞(JaccardTextSimilarity):1、蘭州 1.02、福州 0.223、西安 0.24、哈爾濱 0.185、北京 0.186、武漢 0.187、成都 0.188、長沙 0.159、太原 0.1510、貴陽 0.1511、沈陽 0.1512、廣州 0.1513、拉薩 0.1514、南昌 0.1515、長春 0.13 耗時:19秒,717毫秒 ---------------------------------------------------------- 蘭州 的相關詞(ManhattanDistanceTextSimilarity):1、蘭州 1.02、上海浦東新區 0.113、陜西西咸新區 0.114、甘肅蘭州 0.115、北京軍區 0.116、新疆軍區 0.117、西咸 0.118、正定新區 0.119、天府新區 0.1110、沈陽軍區 0.1111、國家級新區 0.1112、蘭州新區 0.1113、俠客 0.114、威脅論 0.115、一兩個月 0.1 耗時:23秒,857毫秒 ---------------------------------------------------------- 蘭州 的相關詞(SimHashPlusHammingDistanceTextSimilarity):1、蘭州 1.02、魚水 0.963、馮導 0.954、新聞稿 0.955、科學 0.956、物業公司 0.957、現役軍人 0.958、何人 0.959、張軫 0.9410、公告 0.9411、信息發布 0.9412、倡議 0.9413、藥液 0.9414、考古發掘 0.9415、公開發布 0.94 耗時:5分鐘,57秒,339毫秒 ---------------------------------------------------------- 蘭州 的相關詞(JaroDistanceTextSimilarity):1、蘭州 1.02、長沙 0.493、哈爾濱 0.494、福州 0.485、太原 0.476、慶陽 0.467、濟南 0.468、北京 0.459、成都 0.4510、張家明 0.4511、西安 0.4512、孫勇 0.4513、楚雄州 0.4414、福州站 0.4415、南寧 0.44 耗時:12秒,718毫秒 ---------------------------------------------------------- 蘭州 的相關詞(JaroWinklerDistanceTextSimilarity):1、蘭州 1.02、拉薩 0.563、南寧 0.554、朝廷 0.555、公判 0.546、薩蒙德 0.537、世界級 0.538、濱湖 0.539、大大小小 0.5210、大選 0.5211、七屆 0.5212、烘焙 0.5113、武平縣 0.5114、莫斯科 0.5115、復訓 0.51 耗時:16秒,723毫秒 ---------------------------------------------------------- 蘭州 的相關詞(S?rensenDiceCoefficientTextSimilarity):1、蘭州 1.02、福州 0.373、西安 0.334、哈爾濱 0.35、北京 0.36、武漢 0.37、成都 0.38、長沙 0.279、太原 0.2710、貴陽 0.2711、沈陽 0.2712、廣州 0.2713、拉薩 0.2714、南昌 0.2715、長春 0.23 耗時:19秒,852毫秒 ----------------------------------------------------------

####21、詞頻統計:

org.apdplat.word.WordFrequencyStatistics 提供了詞頻統計的功能

命令行腳本的調用方法如下:

將需要統計詞頻的文本寫入文件:text.txt chmod +x wfs.sh & wfs.sh -textFile=text.txt -statisticsResultFile=statistics-result.txt 程序運行結束后打開文件statistics-result.txt查看詞頻統計結果

在程序中的調用方法如下:

//詞頻統計設置 WordFrequencyStatistics wordFrequencyStatistics = new WordFrequencyStatistics(); wordFrequencyStatistics.setRemoveStopWord(false); wordFrequencyStatistics.setResultPath("word-frequency-statistics.txt"); wordFrequencyStatistics.setSegmentationAlgorithm(SegmentationAlgorithm.MaxNgramScore); //開始分詞 wordFrequencyStatistics.seg("明天下雨,結合成分子,明天有關于分子和原子的課程,下雨了也要去聽課"); //輸出詞頻統計結果 wordFrequencyStatistics.dump(); //準備文件 Files.write(Paths.get("text-to-seg.txt"), Arrays.asList("word分詞是一個Java實現的分布式中文分詞組件,提供了多種基于詞典的分詞算法,并利用ngram模型來消除歧義。")); //清除之前的統計結果 wordFrequencyStatistics.reset(); //對文件進行分詞 wordFrequencyStatistics.seg(new File("text-to-seg.txt"), new File("text-seg-result.txt")); //輸出詞頻統計結果 wordFrequencyStatistics.dump("file-seg-statistics-result.txt");

第一句話的詞頻統計結果:

1、下雨 2 2、明天 2 3、分子 2 4、課程 1 5、聽課 1 6、結合 1 7、原子 1 8、去 1 9、成 1 10、關于 1 11、和 1 12、也要 1 13、有 1 14、的 1 15、了 1

第二句話的詞頻統計結果:

1、分詞 2 2、的 2 3、基于 1 4、word 1 5、組件 1 6、詞典 1 7、ngram 1 8、多種 1 9、實現 1 10、并 1 11、利用 1 12、消除歧義 1 13、中文分詞 1 14、算法 1 15、是 1 16、分布式 1 17、了 1 18、提供 1 19、模型 1 20、來 1 21、一個 1 22、Java 1

####22、文本相似度:

word分詞提供了多種文本相似度計算方式:

方式一:余弦相似度,通過計算兩個向量的夾角余弦值來評估他們的相似度

實現類:org.apdplat.word.analysis.CosineTextSimilarity

用法如下:

String text1 = "我愛購物"; String text2 = "我愛讀書"; String text3 = "他是黑客"; TextSimilarity textSimilarity = new CosineTextSimilarity(); double score1pk1 = textSimilarity.similarScore(text1, text1); double score1pk2 = textSimilarity.similarScore(text1, text2); double score1pk3 = textSimilarity.similarScore(text1, text3); double score2pk2 = textSimilarity.similarScore(text2, text2); double score2pk3 = textSimilarity.similarScore(text2, text3); double score3pk3 = textSimilarity.similarScore(text3, text3); System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1); System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2); System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3); System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2); System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3); System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);

運行結果如下:

我愛購物 和 我愛購物 的相似度分值:1.0 我愛購物 和 我愛讀書 的相似度分值:0.67 我愛購物 和 他是黑客 的相似度分值:0.0 我愛讀書 和 我愛讀書 的相似度分值:1.0 我愛讀書 和 他是黑客 的相似度分值:0.0 他是黑客 和 他是黑客 的相似度分值:1.0

方式二:簡單共有詞,通過計算兩篇文檔共有的詞的總字符數除以最長文檔字符數來評估他們的相似度

實現類:org.apdplat.word.analysis.SimpleTextSimilarity

用法如下:

String text1 = "我愛購物"; String text2 = "我愛讀書"; String text3 = "他是黑客"; TextSimilarity textSimilarity = new SimpleTextSimilarity(); double score1pk1 = textSimilarity.similarScore(text1, text1); double score1pk2 = textSimilarity.similarScore(text1, text2); double score1pk3 = textSimilarity.similarScore(text1, text3); double score2pk2 = textSimilarity.similarScore(text2, text2); double score2pk3 = textSimilarity.similarScore(text2, text3); double score3pk3 = textSimilarity.similarScore(text3, text3); System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1); System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2); System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3); System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2); System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3); System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);

運行結果如下:

我愛購物 和 我愛購物 的相似度分值:1.0 我愛購物 和 我愛讀書 的相似度分值:0.5 我愛購物 和 他是黑客 的相似度分值:0.0 我愛讀書 和 我愛讀書 的相似度分值:1.0 我愛讀書 和 他是黑客 的相似度分值:0.0 他是黑客 和 他是黑客 的相似度分值:1.0

方式三:編輯距離,通過計算兩個字串之間由一個轉成另一個所需的最少編輯操作次數來評估他們的相似度

實現類:org.apdplat.word.analysis.EditDistanceTextSimilarity

用法如下:

String text1 = "我愛購物"; String text2 = "我愛讀書"; String text3 = "他是黑客"; TextSimilarity textSimilarity = new EditDistanceTextSimilarity(); double score1pk1 = textSimilarity.similarScore(text1, text1); double score1pk2 = textSimilarity.similarScore(text1, text2); double score1pk3 = textSimilarity.similarScore(text1, text3); double score2pk2 = textSimilarity.similarScore(text2, text2); double score2pk3 = textSimilarity.similarScore(text2, text3); double score3pk3 = textSimilarity.similarScore(text3, text3); System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1); System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2); System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3); System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2); System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3); System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);

運行結果如下:

我愛購物 和 我愛購物 的相似度分值:1.0 我愛購物 和 我愛讀書 的相似度分值:0.5 我愛購物 和 他是黑客 的相似度分值:0.0 我愛讀書 和 我愛讀書 的相似度分值:1.0 我愛讀書 和 他是黑客 的相似度分值:0.0 他是黑客 和 他是黑客 的相似度分值:1.0

方式四:SimHash + 漢明距離,先使用SimHash把不同長度的文本映射為等長文本,然后再計算等長文本的漢明距離

實現類:org.apdplat.word.analysis.SimHashPlusHammingDistanceTextSimilarity

用法如下:

String text1 = "我愛購物"; String text2 = "我愛讀書"; String text3 = "他是黑客"; TextSimilarity textSimilarity = new SimHashPlusHammingDistanceTextSimilarity(); double score1pk1 = textSimilarity.similarScore(text1, text1); double score1pk2 = textSimilarity.similarScore(text1, text2); double score1pk3 = textSimilarity.similarScore(text1, text3); double score2pk2 = textSimilarity.similarScore(text2, text2); double score2pk3 = textSimilarity.similarScore(text2, text3); double score3pk3 = textSimilarity.similarScore(text3, text3); System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1); System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2); System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3); System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2); System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3); System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);

運行結果如下:

我愛購物 和 我愛購物 的相似度分值:1.0 我愛購物 和 我愛讀書 的相似度分值:0.95 我愛購物 和 他是黑客 的相似度分值:0.83 我愛讀書 和 我愛讀書 的相似度分值:1.0 我愛讀書 和 他是黑客 的相似度分值:0.86 他是黑客 和 他是黑客 的相似度分值:1.0

方式五:Jaccard相似性系數(Jaccard similarity coefficient),通過計算兩個集合交集的大小除以并集的大小來評估他們的相似度

實現類:org.apdplat.word.analysis.JaccardTextSimilarity

用法如下:

String text1 = "我愛購物"; String text2 = "我愛讀書"; String text3 = "他是黑客"; TextSimilarity textSimilarity = new JaccardTextSimilarity(); double score1pk1 = textSimilarity.similarScore(text1, text1); double score1pk2 = textSimilarity.similarScore(text1, text2); double score1pk3 = textSimilarity.similarScore(text1, text3); double score2pk2 = textSimilarity.similarScore(text2, text2); double score2pk3 = textSimilarity.similarScore(text2, text3); double score3pk3 = textSimilarity.similarScore(text3, text3); System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1); System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2); System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3); System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2); System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3); System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);

運行結果如下:

我愛購物 和 我愛購物 的相似度分值:1.0 我愛購物 和 我愛讀書 的相似度分值:0.5 我愛購物 和 他是黑客 的相似度分值:0.0 我愛讀書 和 我愛讀書 的相似度分值:1.0 我愛讀書 和 他是黑客 的相似度分值:0.0 他是黑客 和 他是黑客 的相似度分值:1.0

方式六:歐幾里得距離(Euclidean Distance),通過計算兩點間的距離來評估他們的相似度

實現類:org.apdplat.word.analysis.EuclideanDistanceTextSimilarity

用法如下:

String text1 = "我愛購物"; String text2 = "我愛讀書"; String text3 = "他是黑客"; TextSimilarity textSimilarity = new EuclideanDistanceTextSimilarity(); double score1pk1 = textSimilarity.similarScore(text1, text1); double score1pk2 = textSimilarity.similarScore(text1, text2); double score1pk3 = textSimilarity.similarScore(text1, text3); double score2pk2 = textSimilarity.similarScore(text2, text2); double score2pk3 = textSimilarity.similarScore(text2, text3); double score3pk3 = textSimilarity.similarScore(text3, text3); System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1); System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2); System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3); System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2); System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3); System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);

運行結果如下:

我愛購物 和 我愛購物 的相似度分值:1.0 我愛購物 和 我愛讀書 的相似度分值:0.41 我愛購物 和 他是黑客 的相似度分值:0.29 我愛讀書 和 我愛讀書 的相似度分值:1.0 我愛讀書 和 他是黑客 的相似度分值:0.29 他是黑客 和 他是黑客 的相似度分值:1.0

方式七:曼哈頓距離(Manhattan Distance),通過計算兩個點在標準坐標系上的絕對軸距總和來評估他們的相似度

實現類:org.apdplat.word.analysis.ManhattanDistanceTextSimilarity

用法如下:

String text1 = "我愛購物"; String text2 = "我愛讀書"; String text3 = "他是黑客"; TextSimilarity textSimilarity = new ManhattanDistanceTextSimilarity(); double score1pk1 = textSimilarity.similarScore(text1, text1); double score1pk2 = textSimilarity.similarScore(text1, text2); double score1pk3 = textSimilarity.similarScore(text1, text3); double score2pk2 = textSimilarity.similarScore(text2, text2); double score2pk3 = textSimilarity.similarScore(text2, text3); double score3pk3 = textSimilarity.similarScore(text3, text3); System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1); System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2); System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3); System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2); System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3); System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);

運行結果如下:

我愛購物 和 我愛購物 的相似度分值:1.0 我愛購物 和 我愛讀書 的相似度分值:0.33 我愛購物 和 他是黑客 的相似度分值:0.14 我愛讀書 和 我愛讀書 的相似度分值:1.0 我愛讀書 和 他是黑客 的相似度分值:0.14 他是黑客 和 他是黑客 的相似度分值:1.0

方式八:Jaro距離(Jaro Distance),編輯距離的一種類型

實現類:org.apdplat.word.analysis.JaroDistanceTextSimilarity

用法如下:

String text1 = "我愛購物"; String text2 = "我愛讀書"; String text3 = "他是黑客"; TextSimilarity textSimilarity = new JaroDistanceTextSimilarity(); double score1pk1 = textSimilarity.similarScore(text1, text1); double score1pk2 = textSimilarity.similarScore(text1, text2); double score1pk3 = textSimilarity.similarScore(text1, text3); double score2pk2 = textSimilarity.similarScore(text2, text2); double score2pk3 = textSimilarity.similarScore(text2, text3); double score3pk3 = textSimilarity.similarScore(text3, text3); System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1); System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2); System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3); System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2); System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3); System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);

運行結果如下:

我愛購物 和 我愛購物 的相似度分值:1.0 我愛購物 和 我愛讀書 的相似度分值:0.67 我愛購物 和 他是黑客 的相似度分值:0.0 我愛讀書 和 我愛讀書 的相似度分值:1.0 我愛讀書 和 他是黑客 的相似度分值:0.0 他是黑客 和 他是黑客 的相似度分值:1.0

方式九:Jaro–Winkler距離(Jaro–Winkler Distance),Jaro的擴展

實現類:org.apdplat.word.analysis.JaroWinklerDistanceTextSimilarity

用法如下:

String text1 = "我愛購物"; String text2 = "我愛讀書"; String text3 = "他是黑客"; TextSimilarity textSimilarity = new JaroWinklerDistanceTextSimilarity(); double score1pk1 = textSimilarity.similarScore(text1, text1); double score1pk2 = textSimilarity.similarScore(text1, text2); double score1pk3 = textSimilarity.similarScore(text1, text3); double score2pk2 = textSimilarity.similarScore(text2, text2); double score2pk3 = textSimilarity.similarScore(text2, text3); double score3pk3 = textSimilarity.similarScore(text3, text3); System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1); System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2); System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3); System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2); System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3); System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);

運行結果如下:

我愛購物 和 我愛購物 的相似度分值:1.0 我愛購物 和 我愛讀書 的相似度分值:0.73 我愛購物 和 他是黑客 的相似度分值:0.0 我愛讀書 和 我愛讀書 的相似度分值:1.0 我愛讀書 和 他是黑客 的相似度分值:0.0 他是黑客 和 他是黑客 的相似度分值:1.0

方式十:S?rensen–Dice系數(S?rensen–Dice coefficient),通過計算兩個集合交集的大小的2倍除以兩個集合的大小之和來評估他們的相似度

實現類:org.apdplat.word.analysis.S?rensenDiceCoefficientTextSimilarity

用法如下:

String text1 = "我愛購物"; String text2 = "我愛讀書"; String text3 = "他是黑客"; TextSimilarity textSimilarity = new S?rensenDiceCoefficientTextSimilarity(); double score1pk1 = textSimilarity.similarScore(text1, text1); double score1pk2 = textSimilarity.similarScore(text1, text2); double score1pk3 = textSimilarity.similarScore(text1, text3); double score2pk2 = textSimilarity.similarScore(text2, text2); double score2pk3 = textSimilarity.similarScore(text2, text3); double score3pk3 = textSimilarity.similarScore(text3, text3); System.out.println(text1+" 和 "+text1+" 的相似度分值:"+score1pk1); System.out.println(text1+" 和 "+text2+" 的相似度分值:"+score1pk2); System.out.println(text1+" 和 "+text3+" 的相似度分值:"+score1pk3); System.out.println(text2+" 和 "+text2+" 的相似度分值:"+score2pk2); System.out.println(text2+" 和 "+text3+" 的相似度分值:"+score2pk3); System.out.println(text3+" 和 "+text3+" 的相似度分值:"+score3pk3);

運行結果如下:

我愛購物 和 我愛購物 的相似度分值:1.0 我愛購物 和 我愛讀書 的相似度分值:0.67 我愛購物 和 他是黑客 的相似度分值:0.0 我愛讀書 和 我愛讀書 的相似度分值:1.0 我愛讀書 和 他是黑客 的相似度分值:0.0 他是黑客 和 他是黑客 的相似度分值:1.0

####23、判定句子是有意義的人話的可能性:

通過如下命令: unix-like:chmod +x sentence-identify.sh & ./sentence-identify.sh windows:./sentence-identify.bat 運行 org.apdplat.word.analysis.SentenceIdentify 類的結果如下所示:1. 句子: 我是一個男人你是一個女人, 概率: 0.71428573 2. 句子: 我是一個人, 概率: 0.6666667 3. 句子: 我愛讀書, 概率: 0.5 4. 句子: 我愛學習, 概率: 0.5 5. 句子: 法蒂小室汝輩武學大師改個入門處, 概率: 0.2857143 6. 句子: 顯氣孔率高壓線塔總監督室波洛奈茲王毅陳劉玉榮, 概率: 0.2857143 7. 句子: 王捷俊匯報演出干草加韋拉一杠地壟墻未嘗不可, 概率: 0.25 8. 句子: 八九點鐘山光水色飽經世變普留申科淮河鎮樂不極盤模擬飛行, 概率: 0.22222222 9. 句子: 物位任務區亡靈書巴納爾沒腦子揪人心肺復習功課林友力避風塘, 概率: 0.2 10. 句子: 參與方植物學報白善燁暗影狂奔騎白馬痦子山城堡猶豫不定岳陽機場, 概率: 0.2接著可根據命令行提示輸入句子并回車來獲得句子的評分例如輸入句子并回車:為中國崛起而努力奮斗 程序返回結果如下: 隨機單詞: [為, 中國, 崛起, 而, 努力, 奮斗] 生成句子: 為中國崛起而努力奮斗 句子概率: 1.0例如輸入句子并回車:人腦的記憶是保存在生物電上還是在細胞里? 程序返回結果如下: 隨機單詞: [人腦, 的, 記憶, 是, 保存, 在, 生物, 電, 上, 還是, 在, 細胞, 里] 生成句子: 人腦的記憶是保存在生物電上還是在細胞里? 句子概率: 0.8333333

###分詞算法效果評估:

1、word分詞 最大Ngram分值算法: 分詞速度:370.9714 字符/毫秒 行數完美率:66.55% 行數錯誤率:33.44% 總的行數:2533709 完美行數:1686210 錯誤行數:847499 字數完美率:60.94% 字數錯誤率:39.05% 總的字數:28374490 完美字數:17293964 錯誤字數:110805262、word分詞 最少詞數算法: 分詞速度:330.1586 字符/毫秒 行數完美率:65.67% 行數錯誤率:34.32% 總的行數:2533709 完美行數:1663958 錯誤行數:869751 字數完美率:60.12% 字數錯誤率:39.87% 總的字數:28374490 完美字數:17059641 錯誤字數:113148493、word分詞 全切分算法: 分詞速度:62.960262 字符/毫秒 行數完美率:57.2% 行數錯誤率:42.79% 總的行數:2533709 完美行數:1449288 錯誤行數:1084421 字數完美率:47.95% 字數錯誤率:52.04% 總的字數:28374490 完美字數:13605742 錯誤字數:147687484、word分詞 雙向最大最小匹配算法: 分詞速度:462.87158 字符/毫秒 行數完美率:53.06% 行數錯誤率:46.93% 總的行數:2533709 完美行數:1344624 錯誤行數:1189085 字數完美率:43.07% 字數錯誤率:56.92% 總的字數:28374490 完美字數:12221610 錯誤字數:161528805、word分詞 雙向最小匹配算法: 分詞速度:967.68604 字符/毫秒 行數完美率:46.34% 行數錯誤率:53.65% 總的行數:2533709 完美行數:1174276 錯誤行數:1359433 字數完美率:36.07% 字數錯誤率:63.92% 總的字數:28374490 完美字數:10236574 錯誤字數:181379166、word分詞 雙向最大匹配算法: 分詞速度:661.148 字符/毫秒 行數完美率:46.18% 行數錯誤率:53.81% 總的行數:2533709 完美行數:1170075 錯誤行數:1363634 字數完美率:35.65% 字數錯誤率:64.34% 總的字數:28374490 完美字數:10117122 錯誤字數:182573687、word分詞 正向最大匹配算法: 分詞速度:1567.1318 字符/毫秒 行數完美率:41.88% 行數錯誤率:58.11% 總的行數:2533709 完美行數:1061189 錯誤行數:1472520 字數完美率:31.35% 字數錯誤率:68.64% 總的字數:28374490 完美字數:8896173 錯誤字數:194783178、word分詞 逆向最大匹配算法: 分詞速度:1232.6017 字符/毫秒 行數完美率:41.69% 行數錯誤率:58.3% 總的行數:2533709 完美行數:1056515 錯誤行數:1477194 字數完美率:30.98% 字數錯誤率:69.01% 總的字數:28374490 完美字數:8792532 錯誤字數:195819589、word分詞 逆向最小匹配算法: 分詞速度:1936.9575 字符/毫秒 行數完美率:41.42% 行數錯誤率:58.57% 總的行數:2533709 完美行數:1049673 錯誤行數:1484036 字數完美率:31.34% 字數錯誤率:68.65% 總的字數:28374490 完美字數:8893622 錯誤字數:1948086810、word分詞 正向最小匹配算法: 分詞速度:2228.9465 字符/毫秒 行數完美率:36.7% 行數錯誤率:63.29% 總的行數:2533709 完美行數:930069 錯誤行數:1603640 字數完美率:26.72% 字數錯誤率:73.27% 總的字數:28374490 完美字數:7583741 錯誤字數:20790749

###相關文章:

1、中文分詞算法 之 基于詞典的正向最大匹配算法

2、中文分詞算法 之 基于詞典的逆向最大匹配算法

3、中文分詞算法 之 詞典機制性能優化與測試

4、中文分詞算法 之 基于詞典的正向最小匹配算法

5、中文分詞算法 之 基于詞典的逆向最小匹配算法

6、一種利用ngram模型來消除歧義的中文分詞方法

7、一種基于詞性序列的人名識別方法

8、中文分詞算法 之 基于詞典的全切分算法

9、9大Java開源中文分詞器的使用方法和分詞效果對比

10、中文分詞之11946組同義詞

11、中文分詞之9271組反義詞

12、如何利用多核提升分詞速度

13、利用word分詞來計算文本相似度

14、利用word分詞來對文本進行詞頻統計

15、利用word分詞通過計算詞的語境來獲得相關詞

###相關項目:

Java開源項目cws_evaluation:中文分詞器分詞效果評估對比

Java開源項目QuestionAnsweringSystem:人機問答系統

Java開源項目word_web:通過web服務器對word分詞的資源進行集中統一管理

###相關文獻:

An Implementation of Double-Array Trie

MMSEG: A Word Identification System for Mandarin Chinese Text Based on Two Variants of the Maximum Matching Algorithm

With Google’s new tool Ngram Viewer, you can visualise the rise and fall of concepts across 5 million books and 500 years!

word2vec

魅力漢語

https://travis-ci.org/ysc/word

總結

以上是生活随笔為你收集整理的Java分布式中文分词组件 - word分词(转自:https://github.com/ysc/word)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

久久99精品波多结衣一区 | 美女精品网站 | 国产馆在线播放 | 国产精品淫片 | www操操| 狠狠色丁香婷婷综合最新地址 | 色在线免费 | 操操操操网 | 黄色中文字幕 | 中文字幕91在线 | 国产成人精品一二三区 | 久久国产电影 | 日韩精品在线观看av | 夜夜骑日日操 | 国产精品99爱| 视频一区视频二区在线观看 | 亚洲精品中文字幕在线观看 | 久久精品4 | 婷婷色中文字幕 | av中文字幕在线看 | 麻豆超碰 | 久久综合九九 | 成人性生活大片 | 色五婷婷 | 中文字幕中文字幕在线中文字幕三区 | 五月开心六月伊人色婷婷 | 久久婷婷一区二区三区 | 在线电影 一区 | 日韩免费观看一区二区 | 在线国产视频 | 一区二区三区中文字幕在线观看 | 亚洲 成人 一区 | 999久久久久久久久6666 | 人人玩人人添人人澡超碰 | 欧美日韩伦理一区 | 久久国语 | 国产精品久久久久毛片大屁完整版 | 人人模人人爽 | 蜜桃视频日本 | 精品亚洲免费视频 | 蜜臀av性久久久久蜜臀aⅴ涩爱 | 在线视频 精品 | av免费网站在线观看 | aaa免费毛片 | 国产精品亚 | 国产一区二区在线播放视频 | 日日夜夜人人精品 | 日本中文字幕在线观看 | 久久都是精品 | 亚洲精品视频在线观看网站 | 天天艹天天干天天 | 天天艹天天 | 久久中文网 | 天天色天天 | 国内一区二区视频 | 国内久久精品 | 国产亚洲精品久久久久久大师 | 91九色成人 | 亚洲精品女 | 亚洲闷骚少妇在线观看网站 | 日本精品在线视频 | 国产不卡在线播放 | 精品在线看 | 天天射天天干天天爽 | 国产精品一区二区久久久 | 丁香久久综合 | 99中文字幕| 狠狠操导航 | 狠狠久久婷婷 | 国产精品麻豆三级一区视频 | 国产一区二区在线观看免费 | 激情综合网天天干 | 女人18精品一区二区三区 | 日韩在线 一区二区 | 99久久夜色精品国产亚洲96 | 97在线观看免费高清完整版在线观看 | 亚洲免费视频观看 | 色九九视频 | 天天透天天插 | 午夜精品一区二区三区在线 | 国产精品一区二区电影 | 色偷偷人人澡久久超碰69 | 国产精品一区二区在线看 | www.干| 最近中文字幕高清字幕在线视频 | 亚洲丝袜一区 | 免费观看的黄色片 | 国产99久久久国产精品免费二区 | 亚洲天堂网在线播放 | 中文字幕刺激在线 | 国产精品扒开做爽爽的视频 | 国产91影视| 园产精品久久久久久久7电影 | 黄色日本免费 | 国产99一区| 成人啪啪18免费游戏链接 | 丁香婷婷激情网 | 午夜精品一区二区三区在线观看 | 国产99精品在线观看 | 日韩av成人在线 | 国产一级片久久 | 欧美激精品 | 久久色网站| 黄色免费网站下载 | 久久99精品视频 | 国产精品 亚洲精品 | 日韩精品你懂的 | 国产精品黄色av | 久久亚洲福利视频 | 黄网站色视频免费观看 | 中文国产成人精品久久一 | 国产日韩高清在线 | 视频在线观看日韩 | 综合国产在线 | 伊人久久国产 | 成人午夜电影免费在线观看 | 欧美黑人xxxx猛性大交 | 免费观看黄 | 久久综合欧美精品亚洲一区 | 欧美日韩中文视频 | 丁香九月婷婷 | 91精品国产亚洲 | 久久这里只有精品久久 | 少妇搡bbbb搡bbb搡69 | 亚洲精品午夜国产va久久成人 | 欧美性性网 | 日韩成人邪恶影片 | 美女黄视频免费 | 日韩久久电影 | 国内一级片在线观看 | 黄色成人小视频 | 欧美在线99 | 国产蜜臀av| 久久国产免费 | 丁香视频免费观看 | 天天干夜夜想 | 韩国精品一区二区三区六区色诱 | 日韩午夜大片 | 一区二区三区四区五区在线 | 亚洲精品国偷自产在线91正片 | 国产精品美女久久久久aⅴ 干干夜夜 | 热久久最新地址 | 亚洲播播 | 日韩欧美在线高清 | 99精品99 | 国产中文视 | 亚洲v精品 | 欧美日韩国产综合网 | 亚洲成a人片77777kkkk1在线观看 | 国产精品青草综合久久久久99 | 天堂网一区二区三区 | 欧美精品中文 | 国语精品久久 | 亚洲视频一级 | 天天视频色版 | 久久久久久97三级 | 国产在线精品国自产拍影院 | 国产91精品欧美 | 色偷偷网站视频 | 狠狠色香婷婷久久亚洲精品 | 色一级片 | 在线欧美a | 亚洲影视九九影院在线观看 | 日韩激情在线视频 | 国产999精品久久久影片官网 | 91av视频导航 | 欧洲精品二区 | 免费国产亚洲视频 | 九九视频在线 | 欧美精品网站 | 一区二区三区免费看 | 日韩乱码在线 | 精品国产一区二区三区蜜臀 | 日本精品在线视频 | 亚洲免费公开视频 | 欧美日韩中文字幕在线视频 | 久久久精品在线观看 | 久久婷婷国产色一区二区三区 | 成人a级黄色片 | 在线精品在线 | 色婷婷狠狠18 | 91色欧美| 狠狠撸电影 | 亚洲成年人在线播放 | 久久免费一级片 | 久久午夜电影网 | 成 人 黄 色 视频免费播放 | 色婷婷国产精品 | 91在线最新| 最新国产一区二区三区 | 国产视频一区在线播放 | 青草视频在线 | 豆豆色资源网xfplay | 国产露脸91国语对白 | 成人av一级片 | 久久狠狠一本精品综合网 | 色av男人的天堂免费在线 | 日本特黄特色aaa大片免费 | 一区二区三区免费在线观看视频 | 91在线精品播放 | 国产高清成人在线 | 国产99久久99热这里精品5 | 亚洲精品福利在线观看 | 夜添久久精品亚洲国产精品 | 热热热热热色 | 97在线观看免费视频 | 国产视频 亚洲视频 | 欧美日韩免费观看一区=区三区 | 精品视频在线播放 | 欧美久久久久久久久久久 | 久99精品| 国产日韩在线一区 | 欧美少妇xxx | 国产在线欧美日韩 | 国产一卡久久电影永久 | 五月婷婷在线视频观看 | 全久久久久久久久久久电影 | 国产午夜精品一区二区三区四区 | www国产亚洲精品久久网站 | av一级片 | 久久久国产精品电影 | 99免在线观看免费视频高清 | 日本高清免费中文字幕 | 天天草天天插 | 狠狠婷婷 | 亚洲国产日韩在线 | 黄色成人av网址 | 99视频导航| av福利第一导航 | 免费人成在线观看网站 | 国产精品一区免费看8c0m | 一区二区三区 中文字幕 | 中文在线√天堂 | 奇米影视777四色米奇影院 | 香蕉视频在线播放 | 久久久九色精品国产一区二区三区 | 久草在线免费资源站 | 午夜精品一区二区三区免费 | www.日韩免费 | 亚洲婷婷伊人 | 中国一级片视频 | 中文字幕日韩无 | .国产精品成人自产拍在线观看6 | 一区二区三区 亚洲 | 国产成人精品电影久久久 | 在线免费观看国产 | 日韩影视大全 | 国模一二三区 | 免费av在线播放 | 亚洲一区二区三区精品在线观看 | 欧美少妇18p | 日韩欧美视频免费在线观看 | 午夜精品久久久久久中宇69 | 17videosex性欧美| 国产精品刺激对白麻豆99 | 久久精品99国产国产精 | 免费a网| av在线精品 | 久久电影国产免费久久电影 | 久久久久久久久爱 | 国产探花视频在线播放 | 国产又粗又猛又色又黄视频 | 免费91在线观看 | 在线观看中文字幕网站 | 久久不射电影院 | 2020天天干夜夜爽 | 免费看黄电影 | 亚洲一区二区三区四区精品 | 99精品国产aⅴ | 99久久精品国 | 免费在线观看一区 | 激情婷婷在线 | 五月婷婷激情网 | 久久久黄视频 | 黄色免费看片网站 | 欧美性生活一级片 | 色婷婷狠 | 色综合咪咪久久网 | 免费三级黄色片 | 一区二区三区免费在线观看视频 | 美女精品网站 | 激情图片区 | 国产午夜视频在线观看 | 亚洲免费观看在线视频 | 国产成人免费精品 | 日韩视频免费看 | 国产精品一区二区三区电影 | 久久久亚洲影院 | 成年在线观看 | 欧美在一区| 一区精品久久 | 久久久96| 久久久午夜精品理论片中文字幕 | 国产亚洲精品久久久久久久久久久久 | 亚洲最新在线视频 | 97在线资源| 狠狠色狠狠综合久久 | 97高清视频 | 国产精品久久久久久久久久久久冷 | 欧美日韩久久不卡 | 国产一级视频免费看 | 欧美精品久久人人躁人人爽 | 国产一区在线视频 | 亚洲综合最新在线 | 久久精品中文字幕少妇 | 久草精品视频 | 国产高h视频 | 天天干夜夜操视频 | 正在播放国产91 | 狠狠色丁香婷婷综合视频 | 欧美日本不卡视频 | 五月天婷婷在线播放 | 成人动图 | 欧美性一级观看 | 香蕉视频在线网站 | 成人午夜精品久久久久久久3d | 国产精品自产拍在线观看蜜 | 国产欧美最新羞羞视频在线观看 | 2018好看的中文在线观看 | 亚洲一区二区观看 | 国产精品久久久区三区天天噜 | 午夜久久精品 | 日韩 精品 一区 国产 麻豆 | 黄色av免费 | 国内精品视频在线 | 亚洲精品在线观看视频 | 91久久国产精品 | 久久av免费观看 | 91网页版免费观看 | 91专区在线观看 | 97国产在线 | 精品久久久久久久久久久久久久久久久久 | 又黄又爽又刺激的视频 | 亚洲男模gay裸体gay | 久草在线99| 深夜国产福利 | 日韩高清精品免费观看 | 国产综合在线观看视频 | 欧美久草在线 | 国产不卡精品视频 | 黄色av成人在线观看 | 在线 日韩 av | 激情电影影院 | 久久伊人五月天 | 免费福利小视频 | 欧美精品久久久久久久久久 | 久久久久久免费毛片精品 | 亚洲精品字幕 | 日韩综合第一页 | 亚洲精品久久久蜜桃 | 婷婷六月天丁香 | 国产日韩在线观看一区 | 国产精品久久久久久久久久久久午夜片 | 黄免费在线观看 | 久久久久久看片 | 91香蕉国产 | 在线激情电影 | 免费观看国产成人 | 91成品视频 | 免费在线观看国产精品 | 又黄又爽又刺激的视频 | 亚洲资源在线网 | av在线免费网 | 亚洲乱码国产乱码精品天美传媒 | 中文字幕在线网址 | 欧美一二在线 | 蜜臀av夜夜澡人人爽人人 | 久久爱影视i| bbbbb女女女女女bbbbb国产 | 国产麻豆视频网站 | 日韩国产欧美在线播放 | 国产伦理久久 | 岛国片在线| 91网站在线视频 | 久久久男人的天堂 | 97国产精品| 国产黄色大片免费看 | 丁香 婷婷 激情 | 三级免费黄色 | 国产98色在线 | 日韩 | 在线免费观看视频你懂的 | 天天爽夜夜爽人人爽曰av | 国产免费黄视频在线观看 | 久久这里只有精品视频99 | av网站在线观看免费 | 69夜色精品国产69乱 | 国产精品美女久久久久久久久 | 青青河边草免费直播 | 日韩精品短视频 | 国内外成人在线视频 | 日本中文字幕在线播放 | 国产亚洲va综合人人澡精品 | 91网免费观看 | 亚洲精品国偷拍自产在线观看 | 99久久一区 | 中文永久免费观看 | 天天射天| 91免费视频网站在线观看 | 中文字幕在线观看一区 | 国产黄免费看 | 久久无码精品一区二区三区 | 成年人在线免费视频观看 | 久久精品欧美一区 | 天天操天天操天天操 | 一级一片免费观看 | 国产视频一 | 天天干天天干 | 国产在线精品视频 | 中文字幕在线观看视频免费 | 99久久9 | 精品久久久免费视频 | 精品久久久久久久久久久久久久久久 | 我要色综合天天 | 久久久国际精品 | 欧美日韩久| 又黄又爽又色无遮挡免费 | 人人插人人做 | 黄在线| 亚洲精品网址在线观看 | www.色午夜,com | 国产h在线播放 | 在线精品观看国产 | 日韩欧美v | 国产理论在线 | 综合色婷婷 | 国产不卡视频在线 | 中文字幕在线观看完整版电影 | 亚洲激情影院 | 在线精品观看 | 国产高清视频在线 | 久久精品视频免费观看 | 波多野结衣一区二区三区中文字幕 | 亚洲精品tv久久久久久久久久 | 天天射天天做 | 久久综合狠狠综合久久激情 | 四虎成人免费影院 | 精品伊人久久久 | 国产1区2区3区在线 亚洲自拍偷拍色图 | 丝袜美腿亚洲 | 18女毛片 | 国产福利91精品一区二区三区 | 欧美专区国产专区 | 久久综合精品一区 | 亚洲va天堂va欧美ⅴa在线 | 国产精品亚洲综合久久 | 久久99视频免费观看 | 亚洲人成在线电影 | 亚洲手机av | av超碰在线 | 天天插日日操 | 日韩一区二区免费播放 | 黄色一集片 | 五月婷婷黄色网 | 亚洲午夜久久久久久久久电影网 | www.狠狠色.com | 中文字幕在线免费看 | 国产精品第三页 | 国产精品一区二区在线观看 | 丝袜网站在线观看 | 日韩免费在线观看视频 | 国产成在线观看免费视频 | 五月天综合婷婷 | 91成人网在线 | 在线看国产一区 | 国产原厂视频在线观看 | 久久99热这里只有精品国产 | 97影视 | 五月婷婷综 | 丁香婷婷激情 | 免费观看黄色12片一级视频 | 亚洲综合激情 | 日韩在线免费高清视频 | 国产真实精品久久二三区 | 日韩高清精品一区二区 | 四虎5151久久欧美毛片 | 99热这里只有精品在线观看 | 月下香电影| 91香蕉久久 | 在线免费观看国产 | 日韩久久久久久久久 | 国产无区一区二区三麻豆 | 久久影院一区 | 久久久av免费 | 亚洲久在线 | 91在线你懂的 | 天天操天天弄 | 久久久夜色 | 色综合五月 | 亚洲精品成人av在线 | 奇米777777 | 国产xxxx性hd极品 | av网站在线观看免费 | 久久精品女人毛片国产 | 国产老太婆免费交性大片 | 国产拍揄自揄精品视频麻豆 | 亚洲黄色app | 玖玖精品视频 | 二区三区在线 | 一级黄色片在线 | 欧洲精品码一区二区三区免费看 | 玖玖爱国产在线 | 成人av久久 | 国产精品久久久久永久免费观看 | 欧美精品九九99久久 | 国产手机免费视频 | 国产精品久久久av久久久 | 日韩r级电影在线观看 | 操操爽| 激情视频一区二区三区 | 国产精品久久久久aaaa | 日躁夜躁狠狠躁2001 | 99国产精品视频免费观看一公开 | 国产精品一区二区久久精品 | 婷婷色狠狠 | aa一级片 | 这里有精品在线视频 | 色九九视频| 夜夜看av | 激情动态 | 97视频网址 | 午夜精品一区二区三区在线播放 | 黄色小说在线免费观看 | 免费亚洲精品 | 在线国产高清 | 亚洲成av人片在线观看香蕉 | 欧美国产视频在线 | 中文字幕在线观看免费观看 | 国内精品久久久久久久久久久 | 天堂av色婷婷一区二区三区 | 91.精品高清在线观看 | 一区二区三区免费网站 | 免费看在线看www777 | 国产专区视频在线观看 | 中文国产字幕在线观看 | 欧美精品免费视频 | 视频一区二区三区视频 | 青青河边草免费观看完整版高清 | 精品国产伦一区二区三区观看体验 | 波多野结衣理论片 | 中文字幕在线久一本久 | 久久字幕网 | 午夜精品婷婷 | 国产精品福利一区 | 96看片| 国产99在线免费 | 7777精品伊人久久久大香线蕉 | 精品久久久久国产免费第一页 | 99久久精品视频免费 | 在线观看精品一区 | 日韩精品高清视频 | 日韩极品在线 | 五月激情电影 | 久久亚洲专区 | 久久看视频 | 亚洲二区精品 | 日韩精品视频免费 | 麻豆国产视频 | 欧美一区在线看 | 五月婷婷色播 | 日韩电影中文字幕在线观看 | 国产成人精品久久亚洲高清不卡 | 久久在线观看视频 | 欧美成人精品xxx | 欧美另类交在线观看 | 精品久久99| 韩国精品一区二区三区六区色诱 | 免费观看国产精品视频 | 国产二区视频在线 | 一级黄色网址 | 午夜 久久 tv | 免费视频 三区 | 国产精品wwwwww | 99久久99久国产黄毛片 | 97人人超碰在线 | 亚洲黄色在线观看 | 久久久久久国产精品999 | 热久久影视 | 精品国产一区二区三区蜜臀 | www.国产在线 | 97人人澡人人添人人爽超碰 | 成年人免费在线看 | 不卡的av| 四虎天堂| 人人爱人人爽 | 色www免费视频 | 九色91在线视频 | 在线亚洲午夜片av大片 | 美女视频黄色免费 | 四虎影视成人永久免费观看亚洲欧美 | 日本精品视频在线观看 | 国产真实在线 | 波多野结衣日韩 | 肉色欧美久久久久久久免费看 | 91九色porny蝌蚪主页 | 天天干人人 | 久久久久久伊人 | 国产流白浆高潮在线观看 | 亚洲五月婷 | 久久中文字幕在线视频 | 黄色看片 | 亚洲综合在线五月天 | 国产精品久久久久久久久久白浆 | 国产精品18久久久久vr手机版特色 | 国产精品涩涩屋www在线观看 | 国产精品va在线观看入 | 国产黄色成人 | 日韩综合视频在线观看 | 国产精品九九九 | 欧美另类一二三四区 | 一级淫片a | 日日夜夜精品免费 | 精品久久99 | 成人午夜在线电影 | 免费又黄又爽的视频 | 97成人精品区在线播放 | 日韩av视屏 | av福利网址导航 | 国产一级电影网 | 草久电影| 亚洲成人家庭影院 | 国产高清av在线播放 | 久久专区 | 亚洲 中文 在线 精品 | 亚洲无吗视频在线 | 国产精品丝袜 | 久久精品中文字幕一区二区三区 | 国产中文字幕三区 | 91精选在线观看 | 久久综合免费视频影院 | 91大片网站 | 99999精品视频 | av不卡免费在线观看 | 国产免费成人av | 免费一级特黄录像 | 欧美a级在线播放 | 免费精品视频在线观看 | 欧美少妇bbwhd | 欧美天天综合 | 成人a视频在线观看 | 婷婷激情五月综合 | 日韩av一区二区三区在线观看 | 在线影院中文字幕 | 97免费中文视频在线观看 | 一区二区男女 | 欧美日韩国产区 | 久草精品视频在线播放 | 热久久最新地址 | 天天色婷婷 | 中文字幕一区在线观看视频 | 一级黄色片在线免费看 | 久久免费美女视频 | 日本精品小视频 | 天无日天天操天天干 | 狠狠做六月爱婷婷综合aⅴ 日本高清免费中文字幕 | 蜜桃视频色 | 麻豆影视在线免费观看 | 久久免费视频在线观看30 | 911av视频 | 日韩国产欧美在线视频 | 久久精品99国产精品 | 免费观看性生交大片3 | 91 在线视频 | 久久精品伊人 | 日韩中文字| 日本激情视频中文字幕 | 午夜av一区 | 成人午夜电影久久影院 | 中文国产在线观看 | 亚洲最新av | 美女视频一区 | 免费男女羞羞的视频网站中文字幕 | 国产日韩欧美视频 | 超碰人人草人人 | 91精品国产综合久久福利不卡 | 国产一区二区影院 | 黄网站免费看 | 在线观看黄色小视频 | 成人免费精品 | 九九在线视频免费观看 | 日批在线观看 | 久久伦理影院 | 成人一级| 一级一级一片免费 | 久久久久久久久久久国产精品 | www久久久 | 免费看的黄色片 | 97视频播放 | 另类老妇性bbwbbw高清 | 午夜精选视频 | 在线视频免费观看 | 亚洲久草网 | 亚洲国产中文字幕在线观看 | 中文不卡视频在线 | 色的网站在线观看 | 国产精品久久久久久久久久99 | 青青河边草免费直播 | 久青草影院 | 免费在线观看av网址 | 国产高清视频免费观看 | 最新日韩在线观看视频 | 国产精品久久电影网 | 欧美国产高清 | 成人久久久久久久久久 | 视频精品一区二区三区 | 国产无遮挡又黄又爽在线观看 | 色片网站在线观看 | 特级片免费看 | 天天操天天怕 | 国内三级在线观看 | 伊人www22综合色 | 91在线看视频 | 日韩视频中文字幕 | 亚洲精品国产精品乱码不99热 | 在线观看韩国av | 99免费在线播放99久久免费 | 激情网在线视频 | 成人av一区二区兰花在线播放 | 国产精品毛片久久久久久 | 国内小视频 | 欧美日韩精品区 | 天天综合网在线 | 精品久久久久久久久久久久久 | 日韩网站在线 | 国产免费专区 | 亚洲美女精品视频 | 国产在线91在线电影 | 色综合天天爱 | 特级西西444www大精品视频免费看 | 免费看精品久久片 | 国产欧美精品一区aⅴ影院 99视频国产精品免费观看 | 夜夜夜夜猛噜噜噜噜噜初音未来 | 高清免费av在线 | 中文字幕黄色av | 久久天天躁夜夜躁狠狠躁2022 | 丁香六月激情婷婷 | 日本成人黄色片 | 国产一区二区视频在线播放 | av天天草 | 国产一区二区免费 | 亚洲精品在线网站 | 伊人超碰在线 | 亚洲国产欧美一区二区三区丁香婷 | 国产成人高清 | 香蕉蜜桃视频 | 成人97视频一区二区 | 日韩视频一 | 免费观看性生交 | 中文字幕国产精品一区二区 | 久草免费福利在线观看 | 不卡视频在线看 | 亚洲日本三级 | 国产字幕av| 97超碰人人 | 美女av在线免费 | 丁香资源影视免费观看 | 国产精品女人久久久 | 99久久久久国产精品免费 | 色狠狠婷婷| 四虎天堂 | 国产精品观看 | 91插插视频 | 久久99精品久久久久婷婷 | 夜夜躁狠狠躁日日躁视频黑人 | 亚洲乱码中文字幕综合 | 精品国偷自产在线 | 久久精品91久久久久久再现 | 国产精品自产拍在线观看蜜 | 欧美一级片免费播放 | 视频在线99 | 中文字幕日韩伦理 | 精品亚洲二区 | 麻豆视频在线观看免费 | 国产亚洲婷婷 | 在线看欧美 | 天天拍夜夜拍 | 中文字幕欧美激情 | 国产福利91精品一区二区三区 | 极品久久久久久久 | 成人免费亚洲 | 一本一道久久a久久综合蜜桃 | 欧美日韩高清一区二区 国产亚洲免费看 | 亚洲精品高清在线 | 久久精品1区2区 | 精品在线你懂的 | 视频一区在线播放 | 综合色站导航 | 99综合电影在线视频 | 91精品久久久久久久久久久久久 | 国产精品一区二区三区在线免费观看 | 日本性生活一级片 | 在线免费观看av网站 | 色香天天 | 精品国产乱码久久久久 | 久久夜色精品亚洲噜噜国4 午夜视频在线观看欧美 | ww亚洲ww亚在线观看 | 在线成人免费电影 | 九九色在线观看 | 久久精品中文字幕一区二区三区 | 天天做日日做天天爽视频免费 | 日韩欧美视频免费观看 | 永久免费精品视频网站 | 婷婷丁香在线观看 | 久草精品网 | 国产精品爽爽久久久久久蜜臀 | 免费观看黄 | 色中文字幕在线观看 | 久久手机视频 | 精品久久久久久国产91 | 国产色综合天天综合网 | 成全在线视频免费观看 | 在线观看www91| 久久综合狠狠综合久久综合88 | 黄色网www | 久久精彩免费视频 | 波多野结衣综合网 | 欧美在线free| 日本中文乱码卡一卡二新区 | 久久99久久99精品免视看婷婷 | 中文字幕高清视频 | 777奇米四色 | 国产一区二区免费在线观看 | h久久| 精品亚洲网 | av免费看av | 日韩xxxbbb| 国产一在线精品一区在线观看 | 国产亚州精品视频 | 2023av在线 | 中文字幕资源在线 | 99热免费在线 | 久久久久久久久久久久久影院 | 国产视频精品视频 | 亚洲精品玖玖玖av在线看 | 久久美女精品 | 中文字幕在线不卡国产视频 | 久av在线| 99在线热播 | 特黄特色特刺激视频免费播放 | 麻豆成人精品视频 | 夜夜视频资源 | 97国产视频 | 天天激情 | 精品在线视频播放 | 在线91色 | www.午夜| 一级黄色片毛片 | 欧美日韩精品在线播放 | 久久精品视频在线免费观看 | 日韩精品久久一区二区三区 | 国产伦精品一区二区三区… | 超碰在线免费97 | av三级在线播放 | 亚洲天堂免费视频 | 亚洲电影毛片 | 高清精品在线 | 中文av影院 | av国产网站 | 国产精品久久久久久久久久久杏吧 | 国产精品18久久久久vr手机版特色 | 免费亚洲一区二区 | 精品欧美日韩 | 韩日av一区二区 | 91污污视频在线观看 | 日日夜夜人人精品 | 国产精品一区免费观看 | 国产在线观看免费av | 成人av电影在线观看 | 久久久久国产精品午夜一区 | 国产精品久久久久久久久久新婚 | 不卡的av电影 | a黄色影院| 最近免费观看的电影完整版 | 精品国产一区二区三区日日嗨 | 日韩综合视频在线观看 | 91在线视频免费观看 | 久久精品中文字幕 | 亚洲手机av| 日韩在线视频免费观看 | 色吧av色av | 中午字幕在线观看 | 人人狠狠综合久久亚洲 | 99久高清在线观看视频99精品热在线观看视频 | 国产欧美在线一区二区三区 | 亚洲男人天堂a | 免费日韩 精品中文字幕视频在线 | 欧美黑人xxxx猛性大交 | 不卡av在线播放 | 在线观看中文字幕dvd播放 | 国产婷婷一区二区 | 狠狠狠狠狠狠狠干 | 国产99精品在线观看 | 亚洲国产精久久久久久久 | 午夜视频免费在线观看 | 久久精精品视频 | 欧美性久久久 | 欧洲精品码一区二区三区免费看 | 亚洲美女精品 | 在线黄色毛片 | 天天操夜夜爱 | 亚洲精品久久久久久国 | 久久久片 | 国产精品免费在线播放 | 亚洲,国产成人av | 精品国产伦一区二区三区观看说明 | www.色婷婷.com | 婷婷综合 | 一级黄毛片 | 久草在线这里只有精品 | 91av美女| 欧美日韩二区在线 | 欧美国产91| 99精品免费视频 | 久久久久久久久影视 | 一级成人免费视频 | 日韩三级.com | 在线观看精品黄av片免费 | 中文一区二区三区在线观看 | 欧美成年黄网站色视频 | 日韩av一区二区三区在线观看 | 欧美性色综合 | 久久香蕉国产精品麻豆粉嫩av | 国产在线第三页 | 9999在线 | 伊人色综合久久天天网 | 91tv国产成人福利 | 欧美日韩在线视频一区二区 | av电影在线不卡 | a视频免费在线观看 | 高清av影院 | 色哟哟国产精品 | 成人av网站在线观看 | 亚洲一级片免费观看 | 日本黄色a级大片 | 亚洲va韩国va欧美va精四季 | 在线看成人 | 亚洲春色奇米影视 | 日韩电影中文字幕在线观看 | 久久综合婷婷国产二区高清 | 日韩黄色中文字幕 | 91精品国产一区二区在线观看 | 91天天操| 亚洲 综合 激情 | 亚洲一区天堂 | 日本在线观看中文字幕无线观看 | 亚洲国产精品一区二区久久,亚洲午夜 | av视屏在线播放 | 国产精品一区二区久久精品爱涩 | 成人在线电影观看 | 日韩精品视频免费专区在线播放 | 888av| 国产精品福利午夜在线观看 | 亚洲成aⅴ人片久久青草影院 | 久久久久久久久久网站 | 欧美精品在线观看免费 | 亚洲午夜精品一区二区三区电影院 | 欧美成人91| 国产白浆在线观看 | 国产精品一区免费观看 | 2018亚洲男人天堂 | 狠狠色丁香婷婷综合久小说久 | 国产一级片免费播放 | 天天干天天色2020 | 亚洲成人高清在线 | 亚洲aⅴ免费在线观看 | 国产精品青青 | 在线成人观看 | 1024在线看片 | 高清视频一区二区三区 | 欧美日韩xxxxx | 中文字幕资源在线观看 | www在线免费观看 | 在线观看你懂的网站 | 99爱在线 | 一区三区在线欧 | 国产亚洲午夜高清国产拍精品 | 国产午夜精品久久 | 亚洲精品资源在线 | 青青色影院 | 91香蕉国产在线观看软件 | 国产69久久| 日韩免费视频 | 欧美激情视频一区二区三区 | 久久九九久久九九 | 特级黄色一级 | 日韩欧美不卡 | 国产精品大片 | 99国产视频| 五月天亚洲婷婷 | 成人免费一级片 | 免费av网站观看 | 麻花传媒mv免费观看 | 亚洲日本va午夜在线电影 | 久久久96 | 日韩精品中文字幕在线播放 | 操老逼免费视频 | 国产99在线播放 | 国产精品久一 | 四虎在线视频免费观看 |