基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词

摘要:
例如,我们可以区分bb frost、3 rooms、iphone、touch4、mp3和T恤等单词。欢迎第一次编写中文分词程序。PublicclassMM2{privatestaticfinalLoglog=LogFactory.getLog;privatestaticHashMap<String,Integer>dictionary=null;privatesstaticfinalWORD_MAX_LENGTH=9;privateReaderreader;static{loadDictionary();}publicMM2{this.reader=reader;}//剪切中文,字母数字句子publicArrayList<句子>get句子()throwsIOException{ArrayList>句子>列表=newArrayList()<句子>();StringBuffercb=newStringBuffer();intd=reader.read());intoffset=0;boolean=false;而{inttype=Character.getType;if{d=toAscii;cb.append;}else{b=true;}d=reader。read();如果{ifoffset++;b=false;char[]ioBuffer=newchar[cb.length()];cb.getChars;Sentencesen=newSentence;list.add;cb.setLength;}offset++;}返回列表;}//将句子剪切为单词publicArrayList<Token>getTokenthrowsIOException{ArrayList>tokenlist=newArrayList1&&dictionary.get(word.toString())!=null&&dictionary.get==2){word.deleteCharAt;bufferIndex-;offset-;}b=true;}如果{Tokentoken=newToken;word.setLength;tokenroll.add;b=false;}}}}returntokenroll;}//将连接的单个英文或数字组合成单词publicArrayList<Token>getNewTokenthrowsIOException{ArrayList>Token>tokenroll=newArrayList˂Token>();Tokenword=null;对于{Token=list.get;if(t.getWord().length()==1&&Character.getType((int)t.getWord().charAt(0)!

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词。比如能分出这样的词:bb霜、3室、乐phone、touch4、mp3、T恤

第一次写中文分词程序,欢迎拍砖。

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第1张publicclass MM2
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第2张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第3张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
privatestaticfinal Log log = LogFactory.getLog(MM2.class);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
privatestatic HashMap<String, Integer> dictionary =null;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
privatestaticfinalint WORD_MAX_LENGTH =9;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
private Reader reader;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
static
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 loadDictionary();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
public MM2(Reader reader)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
this.reader = reader;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
//切分出由中文、字母、数字组成的句子
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
public ArrayList<Sentence> getSentence() throws IOException
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 ArrayList
<Sentence> list=new ArrayList<Sentence>();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 StringBuffer cb
=new StringBuffer();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
int d=reader.read();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
int offset=0;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
boolean b=false;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
while(d>-1)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
int type=Character.getType(d);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if(type==2|| type==9|| type==5)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 d
=toAscii(d);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 cb.append((
char)d);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
else
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 b
=true;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 d
=reader.read();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if(d==-1|| b)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if(d==-1) offset++;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 b
=false;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
char[] ioBuffer =newchar[cb.length()];
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 cb.getChars(
0, cb.length(), ioBuffer, 0);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 Sentence sen
=new Sentence(ioBuffer,offset-cb.length());
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 list.add(sen);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 cb.setLength(
0);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 offset
++;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
return list;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
//将句子切分出词
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
public ArrayList<Token> getToken(ArrayList<Sentence> list) throws IOException
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 ArrayList
<Token> tokenlist=new ArrayList<Token>();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
for(Sentence sen:list)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 StringBuffer word
=new StringBuffer();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
int offset=sen.getStartOffset();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
int bufferIndex =0;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
char c;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
boolean b=false;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
while(bufferIndex<sen.getText().length)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 offset
++;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 c
=sen.getText()[bufferIndex++];
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if(word.length()==0)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 word.append(c);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
else
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 String temp
= (word.toString() + c).intern();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if(dictionary.containsKey(temp) && dictionary.get(temp)==1)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 word.append(c);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
elseif(dictionary.containsKey(temp) && bufferIndex<sen.getText().length)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 word.append(c);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
else
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 bufferIndex
--;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 offset
--;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
while(word.length()>1&& dictionary.get(word.toString())!=null&& dictionary.get(word.toString())==2)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 word.deleteCharAt(word.length()
-1);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 bufferIndex
--;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 offset
--;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 b
=true;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if(b || bufferIndex==sen.getText().length)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 Token token
=new Token(word.toString(),offset-word.length(),offset,"word");
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 word.setLength(
0);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 tokenlist.add(token);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 b
=false;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
return tokenlist;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
//将相连的单个英文或数字组合成词
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
public ArrayList<Token> getNewToken(ArrayList<Token> list) throws IOException
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 ArrayList
<Token> tokenlist=new ArrayList<Token>();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 Token word
=null;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
for(int i=0;i<list.size();i++)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 Token t
=list.get(i);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if(t.getWord().length()==1&& Character.getType((int)t.getWord().charAt(0))!=5)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if(word==null)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 word
=t;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
elseif(word.getEnd()==t.getStart())
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 word.setEnd(t.getEnd());
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 word.setWord(word.getWord()
+t.getWord());
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
else
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 tokenlist.add(word);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 word
=t;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
elseif(word!=null)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 tokenlist.add(word);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 word
=null;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 tokenlist.add(t);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
else
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 tokenlist.add(t);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if(word!=null)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 tokenlist.add(word);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
return tokenlist;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
//双角转单角
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
publicstaticint toAscii(int codePoint)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if((codePoint>=65296&& codePoint<=65305) //0-9
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
|| (codePoint>=65313&& codePoint<=65338) //A-Z
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
|| (codePoint>=65345&& codePoint<=65370) //a-z
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 codePoint
-=65248;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
return codePoint;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
//加载词典
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
publicstaticvoid loadDictionary()
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if (dictionary ==null)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 dictionary
=new HashMap<String, Integer>();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 InputStream is
=null;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 BufferedReader br
=null;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
try
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 is
=new FileInputStream(new File(MM2.class.getClassLoader().getResource("dictionary.txt").toURI()));
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 br
=new BufferedReader(new InputStreamReader(is, "UTF-8"));
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 String word
=null;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
while ((word = br.readLine()) !=null)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 word
=word.toLowerCase();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if ((word.indexOf("#") ==-1) && (word.length() <= WORD_MAX_LENGTH))
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 dictionary.put(word.intern(),
1);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
int i = word.length()-1;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
while(i >=2)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 String temp
= word.substring(0, i).intern();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if (!dictionary.containsKey(temp))
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 dictionary.put(temp,
2);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 i
--;
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
catch (Exception e)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 log.info(e);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
finally
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
try
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if(br!=null)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 br.close();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
if(is!=null)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 is.close();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
catch (IOException e)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 log.info(e);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
publicstatic String[] segWords(Reader input)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 ArrayList
<String> list=new ArrayList<String>();
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
try
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 MM2 f
=new MM2(input);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 ArrayList
<Token> tlist= f.getNewToken(f.getToken(f.getSentence()));
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
for(Token t:tlist)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 list.add(t.getWord());
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
catch(IOException e)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 log.info(e);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
return (String[])list.toArray(new String[0]);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
publicstaticvoid main(String[] args)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 String[] cc
=MM2.segWords(new StringReader("ibm商务机t60p".toLowerCase()));
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张
for(String c:cc)
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第12张基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第13张
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第4张{
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第5张 System.out.println(c);
基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第16张 }

基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词第310张}

免责声明:文章转载自《基于词典的正向最大匹配中文分词算法,能实现中英文数字混合分词》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Git操作之码云代码cloneOracle--约束下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

随便看看

TabWidget修改tab颜色,自定义样式

您可以通过tabWidget-˃setStyleSheet方法设置样式,包括选项卡样式。...

SecureCRT优化调整、永久设置、保护眼睛和配色方案

您可以根据个人喜好调整字体大小。我已经习惯了4号字体。到目前为止,SecureCRT优化已经完成。...

mysql 视图

如果更新的值不在视图范围内,则不允许更新。如果创建视图时未使用withcheck选项,则MySQL在更新视图中的某些数据时不会执行有效性检查。对于上面的团队视图,MySQL将使用视图的公式来替换它,视图公式将合并到select中。也就是说,它最终被提交给MySQL来处理SQL语句。具体来说,MySQL首先获得视图执行结果,该结果形成中间结果,并临时存储在内存...

[Oracle]

MyOralceLinux6.5isrunningonVirtualBox.Basicsettingsis4Gmemory,50Ghard-disk,autopartitionwheninstallOL6.5.**Followingseriesofoperationsneedrootprivilege.1.Edit/etc/hostsAddyourhostn...

Windows Server 2019 Active Directory (AD域)时间不同步的解决方法

2.启用NTPServerHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesW32TimeTimeProviderNtpServer,将键Enabled的值修改为十进制的1。快速将所有注册表导入WindowsRegistryEditorVersion5.00[HHKEY_LOCAL_MACHINESOFTWAR...

图卷积神经网络(GCN)入门

不得不专门为GCN开一个新篇章,表示其重要程度。图卷积神经网络,实际上跟CNN的作用一样,就是一个特征提取器,只不过它的对象是图数据。总地来说,图数据既要考虑节点信息,也要考虑结构信息,图卷积神经网络就可以自动化地既学习节点特征,又能学习节点与节点之间的关联信息。GCN的本质目的就是用来提取拓扑图的空间特征。理解图卷积神经网络主要有两类,一类是基于空间域或顶...