在Unity3D中实现中文分词功能

因为毕设需要在Unity3D中用到中文分词的功能,通过一段时间查询资料后终于实现,在这里则是对我的做法的简单说明。

1、中文分词库选择

因为Unity3D中脚本只有C#和Java两种,但我只会C,所以我选择在语法上比较相近的C#。
关于C#的开源中文分词大部分都是结巴、盘古或Lucene,这里我选择了结巴分词,毕竟调用起来很方便,而且分词性能也很优秀,以下是链接。

jieba.NET是jieba中文分词的.NET版本(C#实现)

2、环境配置

上述选择的分词库有一个要求,就是环境要是.NET Framework 4.5及以上,所以这里需要对Unity3D进行环境配置。

根据经验,Unity2018及以上版本才支持.NET Framework 4.5,所以请选择适合的版本。具体配置步骤见下图。

在Unity3D中实现中文分词功能
配置完以后就可以直接调用动态链接库中函数来实现分词功能了,至于词库修改之类的这里也不多说。

总之结巴分词它的特点是结合了基于概率和基于词典两种方法的分词,也就是说有一些词哪怕你没有在词典中规定,它也能根据基于概率的方式进行分词,但是这有一个缺点就是它对单个字的划分性能很差,比若说你想分“树”“上”,但它给你分成“树上”,关于这一点如果有大佬有解决的办法可以留个言说说。