中文分词用python实现双向最大匹配法,举例子
时间: 2024-02-18 09:02:50 浏览: 133
好的,下面是一个用Python实现双向最大匹配法的中文分词函数,并附有一个例子:
```python
def bi_directional_maximum_matching(text, word_dict):
max_len = max([len(word) for word in word_dict])
result = []
while text:
word = None
# 从左向右最大匹配
for i in range(max_len):
if text[:max_len - i] in word_dict:
word = text[:max_len - i]
result.append(word)
text = text[max_len - i:]
break
# 如果从左向右匹配失败,从右向左最大匹配
if not word:
for i in range(max_len):
if text[-max_len + i:] in word_dict:
word = text[-max_len + i:]
result.append(word)
text = text[:-max_len + i]
break
# 如果从右向左匹配失败,则取单字
if not word:
result.append(text[0])
text = text[1:]
return result
```
使用该函数分词的例子:
```python
word_dict = ['中文', '分词', '用', 'Python', '实现']
text = '中文分词用Python实现'
result = bi_directional_maximum_matching(text, word_dict)
print(result)
```
输出结果为:`['中文', '分词', '用', 'Python', '实现']`。
在这个例子中,我们定义了一个包含若干中文词语的词典`word_dict`,然后对输入文本`text`进行分词。该分词函数会自动使用双向最大匹配法对文本进行切分,并返回分词后的结果。
阅读全文