切分"/>
使用Mynlp感知机实现拼音流切分
需求:
用户输入的连续无空格拼音流,解析为一个个字的拼音。
例如:
“shujubianhuaqushidengxiangguanxinxi”
解析为
shu, ju, bian, hua, qu, shi, deng, xiang, guan, xin, xi
引入感知机通用框架
<dependency><groupId>com.mayabot.mynlp</groupId><artifactId>mynlp-perceptron</artifactId><version>3.0.0</version>
</dependency>
是一个通用的、高性能感知机框架。mynlp其他感知机分词、词性标注、人名识别、NER等都是基于这个框架开发的。
当然你可以基于这个框架解决其他序列标注问题,下面我们将演示如果切分拼音流。(wanzhengdepinyin => wan zheng de pin yin)
你只需告知感知机框架两件事情:
– 特征提取函数
– label编码
– 原始语料如果转换为(输入=标签)二元组
定义感知机
class PinyinSplitDefinition : PerceptronDefinition<Char, String, CharArray>() {override val labels = listOf("B", "M", "E", "S")override fun labelIndex(label: String): Int {return when (label) {"B" -> 0"M" -> 1"E" -> 2"S" -> 3else -> 0}}override fun buffer() = FastStringBuilder(4)override fun featureFunction(sentence: CharArray, size: Int, position: Int, buffer: FastStringBu
更多推荐
使用Mynlp感知机实现拼音流切分
发布评论