有关停用词过滤的问题

打扰了想请教一个问题,用analyze接口得到的分词和词性分析结果,如何方便地实现停用词过滤?我看CoreStopWordDictionary的apply接口是对seg的结果进行过滤,但有时候想用analyze的更精细的结果。或者有什么方法进行类型转换,然后再给apply接口?谢谢

这倒是没有,不过你可以仿照apply的实现,写一份以满足你的精细需求。

谢谢hankcs老师,我写了一个方法想加入到Sentence中,把Sentence对象转换成termList,您看看行不行。要是哪里不行尽管修改,要是可以也麻烦merge一下,以后也方便使用。我不知道用python的话该怎么把这段代码加进去。正在研究。
private Nature nature;
private Term term;

public List<Term> toTermList()
{
    List<Word> wordList = toSimpleWordList();
    Iterator<Word> iterator = wordList.iterator();
    List<Term> termList = new ArrayList<>();
    for (int i = 0; i < wordList.size(); i++)
    {
        Word word = iterator.next();
        nature = Nature.fromString(word.label);
        term.word = word.value;
        term.nature = nature;
        termList.add(term);
    }
    return termList;
}

这里可以把wordlist的size传进去,并且不要用diamond语法,也不需用iterator。

谢谢hankcs老师,我java不会用,模仿改的,我再看一下。还有那之后是要自己重新打包成jar然后替换pyhanlp目录下的jar文件,是这样吗?还是能等到release?但我比较急用。。。

下次release得很久之后了,这里有个例子

嗯嗯,其实我就是在模仿这个例子在写。这个例子里面是继承了一个抽象类。那我应该自己写一个类来继承Sentence?毕竟我不能直接改,除非重新自己打包。。

你只需要学习这个例子的自动编译就行了,编译后的class文件会被pyhanlp的插件机制自动加载。

谢谢谢谢。还想再问下,那相当于把Sentence.java都复制过来,直接改,然后编译就行吗?这样会覆盖原来的Sentence class?

包路径不同就不会,建议咨询一个java工程师。

太谢谢,我想办法~

谢谢hankcs老师,我用一种折中的办法实现了。打扰啦。未来要是release的话,希望能有这个功能~谢谢