導航:首頁 > 編程語言 > javaword分詞

javaword分詞

發布時間:2022-06-10 14:11:03

『壹』 java語言中文分詞程序怎麼編寫

現可以提供兩種思路:
1.String或是StringBuffer(建議用) 中的indexOf("中華")方法,查找給定的的字元串中是否有給定詞表中的詞。
2.借鑒編譯原理中的狀態裝換的思想。
先編寫一個狀態機,用於測試給定字元串中的詞是否滿足詞表中的內容。

寫在最後:1)建議使用第一種方法,因為在java 內部實現的查找操作其實 和你想得思路是相同的,不過他的效率會高些。
2)如果個人的編程能力比較強或是不考慮效率只是想實現專有的分詞演算法。可以使用第二種方法。
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,***為各種分詞演算法名稱,這是分詞結果和人工標注標准不一致的文本

『叄』 您好,請問我用JAVA word分詞器對文件分詞,出來的結果是亂碼,應該如何解決吶

importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;publicclassDanci{publicstaticvoidmain(String[]args){Stringstr=newString();System.out.print("請輸入一個英文句子:");try{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));//獲取鍵盤輸入str=br.readLine();}catch(IOExceptione){e.printStackTrace();}String[]s=str.split("");//轉換成數組System.out.println("你輸入的句子共有單詞"+s.length+"個");//s.length獲取數組長度}}//此程序只能獲取一句話的單詞個數.

『肆』 誰來推薦一個JAVA的分詞工具

java讀取中文分詞工具:linger
Java開源中文分詞器
1、word分詞器
2、Ansj分詞器
3、Stanford分詞器
4、FudanNLP分詞器
5、Jieba分詞器
6、Jcseg分詞器
7、MMSeg4j分詞器
8、IKAnalyzer分詞器
9、Paoding分詞器
10、smartcn分詞器

『伍』 java如何分詞

如果你的分詞規則是在一個字元串的開頭和結尾加上"_",然後兩個字元一分的話,代碼可以這樣寫:
import java.util.ArrayList;
import java.util.List;

public class Participle
{
private static final String HEAD_END_STR = "_";

private static final int PARTICIPLE_LENGTH = 2;

public static void main(String[] args)
{
String exampleWord = "計算機";

exampleWord = "_" + exampleWord + "_";

int length = exampleWord.length();
List<String> result = new ArrayList<String>();

for (int i = 0; i < length - 1; i++)
{
String str = exampleWord.substring(i, i + PARTICIPLE_LENGTH);
result.add(str);
}

System.out.println(result);
}
}
輸出結果:_計, 計算, 算機, 機_

『陸』 用java讀取文檔並分詞。

需要commons-io包,或者自己寫讀文件的部分
importjava.io.File;
importjava.io.IOException;
importjava.util.ArrayList;
importjava.util.Collections;
importjava.util.Comparator;
importjava.util.List;
importjava.util.regex.Matcher;
importjava.util.regex.Pattern;

importorg.apache.commons.io.FileUtils;


publicclassTest20{

/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
Stringstr=null;
try{
str=FileUtils.readFileToString(newFile("e.txt"));
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
Patternp=Pattern.compile("\b[\w-']+\b");
Matcherm=p.matcher(str);
List<Word>words=newArrayList<Word>();
while(m.find()){
add(words,m.group().trim());
}
Collections.sort(words,newComparator<Word>(){

@Override
publicintcompare(Wordo1,Wordo2){
//TODOAuto-generatedmethodstub
returno1.getWord().compareTo(o2.getWord());
}});
System.out.println(words);
}

privatestaticvoidadd(List<Word>words,Stringword){
//TODOAuto-generatedmethodstub
for(Wordtemp:words){
if(temp.getWord().equals(word)){
temp.setCount(temp.getCount()+1);
return;
}
}
Wordw=newWord();
w.setWord(word);
words.add(w);
}

}

classWord{
privateStringword;
privateintcount=1;
publicStringgetWord(){
returnword;
}
publicvoidsetWord(Stringword){
this.word=word;
}
publicintgetCount(){
returncount;
}
publicvoidsetCount(intcount){
this.count=count;
}
@Override
publicStringtoString(){
return"Word[word="+word+",count="+count+"]";
}

}

『柒』 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,***為各種分詞演算法名稱,這是分詞結果和人工標注標准不一致的文本

『捌』 java word分詞器怎樣安裝在java中

word分詞是一個Java實現的分布式的中文分片語件,提供了多種基於詞典的分詞演算法,並利用ngram模型來消除歧義。

如果需要安裝word分詞器可以參考下面的步驟:

1、確保電腦上已經安裝了JDK軟體和Eclispe工具,沒有安裝的可以到對應的官網下載安裝:

JDK官網:http://www.oracle.com/technetwork/java/javase/downloads/index.html

Eclipse官網:http://www.eclipse.org

2、下載word分詞器的相關jar包:

打開word分詞器的官方github主頁:https://github.com/ysc/word

導入成功之後就可以在自己的項目中使用word分詞器了。

『玖』 word是什麼意思

釋義1:英文單詞
n.單詞,歌詞,台詞;(說的).話;諾言;命令
vt.措辭,用詞;用言語表達
vi.講話

釋義2:微軟文字處理軟體
Microsoft Office Word是微軟公司的一個文字處理器應用程序。
Word給用戶提供了用於創建專業而優雅的文檔工具,幫助用戶節省時間,並得到優雅美觀的結果。
一直以來,Microsoft Office Word 都是最流行的文字處理程序。
作為 Office 套件的核心程序, Word 提供了許多易於使用的文檔創建工具,同時也提供了豐富的功能集供創建復雜的文檔使用。哪怕只使用 Word 應用一點文本格式化操作或圖片處理,也可以使簡單的文檔變得比只使用純文本更具吸引力。

釋義3:編程語言中的一種數據類型
WORD是無符號的短整型,且佔2個位元組

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

『拾』 java word中提取關鍵字

給個思路吧。
讀取word用doc4j,然後就是讀成字元串進行處理了。
提取關鍵字首先是中文分詞技術,就是把一段話劃分成多個組成的詞語,然後統計詞語的出現次數,這個是主要依據。這個是有實現的jar包的,可以去搜,搜java 中文分詞就行。
分詞之後,記錄詞語出現位置,這個是輔助的依據,記錄詞語一句話中的位置,越靠前越像關鍵字,權重越高。
甚至可能需要建立一個權重體系,次數設置一個權重,整體位置設置一個權重,不同位置權重也不同。不了解權重可以理解成系數(百分比的,然後計算那個詞是關鍵詞)。

同時需要注意,可能需要排除一些常用詞,哪些次需要排除,這個需要根據程序反復運行,讀取不同word文章的結果來定。
不明白的話在問吧。

閱讀全文

與javaword分詞相關的資料

熱點內容
准了app月卡可以看什麼 瀏覽:139
雲伺服器開機要開30秒 瀏覽:645
php數組傳遞給js 瀏覽:639
在世紀的轉折點上pdf 瀏覽:857
變頻製冷壓縮機性能實驗 瀏覽:574
印刷哪個app好 瀏覽:366
安卓手機如何查看連接過的wifi密碼 瀏覽:460
chrpythonord 瀏覽:353
android切片 瀏覽:230
前端js調用php 瀏覽:590
文件夾res是什麼 瀏覽:488
linuxput命令 瀏覽:932
智能仿生演算法模擬退火 瀏覽:903
汽車辦解壓能代辦嗎 瀏覽:13
美林程序員 瀏覽:841
安卓如何開網路 瀏覽:730
宿來app什麼時候上線 瀏覽:764
成都python培訓機構好不好 瀏覽:422
mysql查看配置命令 瀏覽:597
v8編譯cmake 瀏覽:966