'今天我来到北京清华大学。' 最大逆向匹配法进行中文分词代码
时间: 2023-12-15 09:07:13 浏览: 35
以下是使用Python实现最大逆向匹配法进行中文分词的代码:
```python
def backward_maximum_matching(sentence, word_dict):
# 将句子倒序
sentence = sentence[::-1]
# 分词结果
words = []
# 最大词长
max_word_len = max(len(word) for word in word_dict)
# 句子长度
sentence_len = len(sentence)
# 当前位置指针
idx = 0
while idx < sentence_len:
# 取最大词长或剩余长度中较小的值作为匹配长度
match_len = min(max_word_len, sentence_len - idx)
# 从当前位置向前匹配
while match_len > 0:
# 取匹配长度的词
match_word = sentence[idx:idx+match_len]
if match_word in word_dict:
# 如果匹配成功,加入分词结果中
words.append(match_word[::-1])
# 指针后移
idx += match_len
break
else:
# 如果匹配失败,减小匹配长度
match_len -= 1
else:
# 如果所有长度都匹配失败,取当前位置的单个字符作为词
words.append(sentence[idx])
idx += 1
# 将结果倒序输出
return words[::-1]
```
使用方式如下:
```python
sentence = '今天我来到北京清华大学。'
word_dict = ['今天', '我', '来到', '北京', '清华', '清华大学', '大学']
result = backward_maximum_matching(sentence, word_dict)
print(result)
```
输出结果为:
```
['今天', '我', '来到', '北京', '清华大学', '。']
```