基于词典的中文分词方法
在文本分类中,像汉语这样的语言,在文本之中没有任何空格,我们可以使用基于词典、基于统计或基于机器学习的方法来分词。而基于词典的分词基本上就是将一个中文字符串与字典中的单词进行匹配。成功匹配的字符串被分割成一个单词。
根据匹配方向和匹配长度优先级,我们可以分为:
匹配方向:正向匹配vs反向匹配
匹配长度优先级:最大匹配vs最小匹配
两两组合,就会有四种匹配方式:正向最大匹配法、正向最小匹配法、反向最大匹配法、反向最小匹配法
以正向最大匹配法为例介绍一下流程,另外三种方式类似:
正向最大匹配法(Forward Maximum Matching)
Forward Maximum Matching的步骤是:
让MaxLen代表最大的字长。
(1)从左到右,用MaxLen长度的子串和字典的单词进行匹配。
(2)如果匹配成功,然后插入一个空格。结束后,这个子串继续推进MaxLen长度并重复匹配步骤。
(3)否则,减少子串的最后一个字符,并再次匹配,直到找到一个单词。
(4)如果2个字符的字符串仍然不能在字典中找到,那么将当前单个字符视为一个单词(即一个孤立的单词,不一定是一个真实的单词),移动到下一个并重复上述匹配步骤。
例子1.
1.使用Forward Maximum Matching来切割语句“后天我们去旅游”,MaxLen=4,字典={后天,我们,去,旅游}
后天我们–>后天我–>后天–>后天^ -->我们去旅–>我们去–>我们–>我们^ -->去旅游–>去旅–>去^–>旅游
例子2.
2.使用Forward Minimum Matching来切割语句“后天我们去旅游”,MaxLen=4,字典={后天,我们,去,旅游}
后天–>后天^ -->我们–>我们^ -->去旅–>去旅游–>去^–>旅游
例子3.
3.使用Backward Maximum Matching来切割语句“后天我们去旅游”,MaxLen=4,字典={后天,我们,去,旅游}
们去旅游–>去旅游–>旅游–>^ 旅游–>天我们去–>我们去–>们去–>^ 去–>后天我们–>天我们–>我们–>^我们–>后天
例子4.
4.使用Backward Minimum Matching来切割语句“后天我们去旅游”,MaxLen=4,字典={后天,我们,去,旅游}
旅游–>^ 旅游–>们去–>我们去–>天我们去–>^ 去–>我们–>^我们–>后天