All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.mayabot.nlp.segment.plugins.collector.CollectorApi.kt Maven / Gradle / Ivy

package com.mayabot.nlp.segment.plugins.collector

import com.mayabot.nlp.segment.WordTerm
import com.mayabot.nlp.segment.wordnet.Wordnet
import com.mayabot.nlp.segment.wordnet.Wordpath
import java.util.function.Consumer

/**
 * Mynlp WordTerm 收集器
 *
 *
 * 从wordPath、wordnet这两个数据结构中获得最终的分词结果。
 *
 *
 * 通过这个接口,可以让相同的分词器,获得不同的用途的分词结果。
 *
 * @author jimichan
 */
interface WordTermCollector {

    /**
     * 收集分词结构
     *
     * @param txtChars  词图
     * @param KeepChar  词图
     * @param wordnet  词图
     * @param wordPath 最后的WordPath路径
     * @param consumer 接受WordTerm的消费者
     */
    fun collect(txtChars:CharArray?,wordnet: Wordnet, wordPath: Wordpath, consumer: Consumer)

    var pickUpSubword: PickUpSubword?

    var fillSubword: FillSubword?


    /**
     * 感知机、crf等分词,wordnet中没有子词信息。那么通过这个接口在收集结果之前,通过词典新增子词信息。
     * @author jimichan
     */
    interface FillSubword {
        fun fill(wordnet: Wordnet, wordPath: Wordpath)
    }

    /**
     * 从wordnet中计算出子词的方法。
     * @author jimichan
     */
    interface PickUpSubword {

        fun pickup(term: WordTerm, wordnet: Wordnet, wordPath: Wordpath)
    }


}





© 2015 - 2024 Weber Informatics LLC | Privacy Policy