1. java 同義詞查詢怎麼做
個人覺得需要一個同義詞庫,當用戶輸入「西紅柿」的時候,你先到同義詞庫裡面去找到「西紅柿」的所有同義詞,然後再到資料庫中去查詢。
因為雖然人知道西紅柿和番茄是一個東西,但電腦是不知道的,所以你需要將其關聯起來,比如構建一個同義詞庫。
希望對你幫助。。。。。有好的想法可以HI我。。。大家可以一起討論。。。。。
2. java 同義詞查詢怎麼做
個人覺得需要一個同義詞庫,當用戶輸入「西紅柿」的時候,你先到同義詞庫裡面去找到「西紅柿」的所有同義詞,然後再到資料庫中去查詢。
因為雖然人知道西紅柿和番茄是一個東西,但電腦是不知道的,所以你需要將其關聯起來,比如構建一個同義詞庫。
希望對你幫助。。。。。有好的想法可以HI我。。。大家可以一起討論。。。。。
3. java中文分片語件word怎麼使用
參考如下
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.txt
classpath: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
雙向最大最小匹配演算法:
全切分演算法: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,***為各種分詞演算法名稱,這是分詞結果和人工標注標准不一致的文本
4. java調用txt文件的路徑問題
把代碼提出來。
一種方式:把SegCn.java中的Dictionary.txt路徑改為絕對路徑,例如:d:/src/Dictionary.txt(or d:\\src\\Dictionary.txt )
另一種方式:相對目錄,SegCn.java和Dictionary.txt放在一個目錄下。
5. java如何創建英語單詞詞庫
導入英語詞庫,可以用函數調用直接導入,不過先得有對應文件
6. 如何用Java編寫程序去與情感詞庫匹配
情感詞庫大嗎?不大你可以先讀進來用hash表存儲,方便後續查找;讀完後用你的詞袋向量順序匹配情感詞庫中的詞,比如你的詞袋向量w=[1,2,3,4,5],正向情感詞庫表中hash表數據有[1,2,3],負向情感詞庫hash表數據有[4],那麼你可以這樣寫,偽代碼如下:
int posCount=0;
int negCount=0;
for(int i=0;i<w.lenth;i++){
if(posHash.contain(w[i])){
posCount++;
}
if(negHash.contain(w[i])){
negCount++;
}
}
7. java怎樣在線實現英語單詞翻譯
首先你要有一個詞庫,裡面有單詞,以及中文意思,甚至例句 等等信息吧。
其次你需要一個強大的搜索引擎,可以快速地定位到你輸入的單詞信息。
例如分詞器 + 倒排索引。Lucene就是一個例子。當然現在還有ES也可以實現檢索。
8. 在java 中怎麼調用 PullWord (http://api.pullword.com/) 分詞介面
先說個通知,去年加入社交數據會員的同學們,數據都已經發給你們了,希望對大家的科研有幫助。 如果沒收到郵件,請和我聯系。
今天一個朋友來信,說我開放的那個分詞,不支持跨域訪問,需要在php中加這么一句:header("Access-Control-Allow-Origin: *");。加上後,他說可以了,我其實對php完全不懂,也不知道這是啥,其實分詞我也是門外漢,我這個也沒有用語言模型那套東西,完全走了另外一條路。
最開始pullword分詞還很初級,本質上沒有分詞能力,就是把一句話切成兩兩,三三的string。比如「清華大學」構造出:「清華,華大,清華大,華大學,清華大學」 這樣幾個string。很顯然裡面「華大學」不是一個詞。但是把這個揉到聚類中,聚出類後,會發現這些「爛詞」在很多性質上很特別,比如在類上的分布。比如和清華大學在類分布上的相似性,用一些簡單的規則可以砍掉很多詞。。請注意到目前為止,我並沒有利用詞典來判斷「華大學」不是一個詞,而是根據一些結構性信息來做出「華大學」不是一個詞。這樣反復redo這個「切分詞->聚類->得到爛詞->改進且分詞的能力」過程,最後通過類的信息可以構造出一個不錯的字典。後來我發現了這個方法在行業語料和電商語料上「構建」了非常大的詞庫,並開始組建團隊開始了詞庫創業之旅,雖然沒有融到一毛錢,唯一一個老闆願意出資5萬元,占股8%,我想也沒想就拒絕了。。
很快掙到了一些錢,很多搞SEO,搞爬蟲的找我買詞庫,對他們來說一個全的詞庫太重要了,原因大家都懂,我就不深入解釋了。詞庫這個生意很難維持,這是因為買了詞庫的人,不會再買了,因為詞的變化是比較少的,新詞每年也就涌現有限的一點,這個生意失敗後,我也就沉寂了。
直到有一天某大佬找我,說你搞這么大詞庫,分詞行不行?我開始琢磨有了詞庫怎麼做分詞,當時一批搞機器學習的人在我身邊經常交流,有一天我突然考慮了一種方法來把一句話中可能成詞的每個詞都用一種能量模型來進行概率量化,常識了下效果居然很好,後來有用了一些trick來讓結果更穩定,比如正則化,比如隨機drop一些梯度更新等等。在我的自動評分中從80分左右提高到了95分。當然這和很多分詞軟體提到的准確率99.99%還有距離,但是這些分詞軟體大部分在人民日報語料上做的,而不是在微博和貼吧這種大眾化語料上做的,所以不需要多大詞庫也能做到很好的效果。
後來我把這個工具拿給這個大佬單位用,他給了我一筆經費(記得是2萬元)。後來他說,你這個效果不錯,乾脆開放給社會吧。我在微信朋友圈提了這個想法,fenng馬上就贊助了第一個月的費用,那會性能還不行,需要每個月1000多元來跑這個服務。後來陸續不少人贊助,直到美團雲給了3.7萬元,才結束了四處乞討的生活。
快畢業的時候網路API store把pullword收錄進去,目前從網路這個渠道已經累計調用3200萬次,現在每天的請求也過200萬次,有時候能達到400多萬次,成為了一個服務社會的小產品。
後來有人問我為什麼你不把語言模型和能量方程的方法結合起來,也許更好呢?語言模型的方法我覺得已經有人走的很深入了,用一個特別語言的路子解決語言問題可能並不對。而用一個不是那麼語言的路子解決語言問題也不一定對,但起碼值得探索。
pullword可能是我博士生涯對社會最重要的貢獻,希望能為社會的進步出一份小小的力量。