-
Notifications
You must be signed in to change notification settings - Fork 89
Open
Description
如题,在实际应用中可能会出现分词的时候使用max-word,而检索采用complex,但您的max-word测试后发现是最多两个字一组,这样的话是否有问题?我在使用的过程中是将其能分成更多的词,比如 计算机学院 我会分成 计算机、学院、计算 这样的,我对代码修改了一点,其中主要对MaxWordSeg.java进行了修改,如下:
public Chunk seg(Sentence sen) {
Chunk chunk = new Chunk();
char[] chs = sen.getText();
List<Word> cks = new ArrayList<Word>();
for(int k=0; k<3&&!sen.isFinish(); k++) {
int offset = sen.getOffset();
int maxLen = 0;
//有了 key tree 的支持可以从头开始 max match
ArrayList<Integer> lens = dic.maxMatchs(chs, offset);
maxLen = lens.get(0);
for(int len:lens){
if(len>maxLen){
maxLen = len;
}
cks.add(new Word(chs, sen.getStartOffset(), offset, len+1));
}
chunk.words[k] = new Word(chs, sen.getStartOffset(), offset, maxLen+1);
offset += maxLen + 1;
sen.setOffset(offset);
}
chunk.words = cks.toArray(new Word[cks.size()]);
chunk.count = cks.size();
return chunk;
}
如有不当之处,请见谅
Metadata
Metadata
Assignees
Labels
No labels