定义一个函数extract_word(texts):参数texts为标注后的句子,返回分词结果列表,为我写一段代码实现分词提取: 待切分句子:"大学生的生活很丰富。" 标注结果:"大/B学/M生/E的/S生/B活/E很/S丰/B富/E。/S" 分词结果:["大学生", "的", "生活", "很", "丰富", "。"]
时间: 2023-07-07 16:28:27 浏览: 77
有关中文分词的源代码c++实现的
3星 · 编辑精心推荐
以下是Python实现代码:
```python
def extract_word(texts):
words = []
start = 0
for i in range(len(texts)):
if texts[i] in ['B', 'S']:
start = i
elif texts[i] in ['E', 'S']:
words.append(texts[start:i+1])
return [word.replace('/', '') for word in words]
# 测试代码
texts = "大/B学/M生/E的/S生/B活/E很/S丰/B富/E。/S"
print(extract_word(texts)) # ["大学生", "的", "生活", "很", "丰富", "。"]
```
该函数的实现过程如下:
1. 遍历标注后的句子,当遇到'B'或者'S'时,将当前位置作为起始位置start。
2. 当遇到'E'或者'S'时,将(start, i+1)这个区间作为一个词语,添加到words列表中。
3. 最后将words中的每个词语中的'/'去掉,并返回分词结果列表。
使用该函数,对于待切分句子"大学生的生活很丰富。",可以得到分词结果["大学生", "的", "生活", "很", "丰富", "。"]。
阅读全文