标注集:采用包含4个角色的标注集:B、M、E、S B:表示词的开头字符 M:表示词的中间字符 E:表示词的结尾字符 S:表示单字成词字符 待切分句子:"大学生的生活很丰富。" 标注结果:"大/B学/M生/E的/S生/B活/E很/S丰/B富/E。/S" 请定义一个函数extract_label(texts):参数texts为标注后的句子,返回分词角色标签列表,再定义一个函数extract_word(texts):参数texts为标注后的句子,返回分词结果列表 使用测试代码s = "大/B学/M生/E的/S生/B活/E很/S丰/B富/E。/S" print( extract_label(s), extract_word(s), sep="\n" ) 最终达到可以分别输出['B', 'M', 'E', 'S', 'B', 'E', 'S', 'B', 'E', 'S'] ['大学生', '的', '生活', '很', '丰富', '。']的目的
时间: 2023-11-27 09:04:31 浏览: 129
百度图像识别:物体检测——数据集如何提交、格式要求
可以使用以下代码实现:
```python
def extract_label(texts):
labels = []
for char in texts:
if char == " ":
continue
elif char == "B" or char == "M" or char == "E" or char == "S":
labels.append(char)
else:
continue
return labels
def extract_word(texts):
words = []
word = ""
label_index = 0
for i, char in enumerate(texts):
if char == " ":
continue
elif texts[i:i+2] == "/S":
words.append(texts[i])
label_index += 1
elif texts[i:i+2] == "/B":
word += texts[i]
label_index += 1
elif texts[i:i+2] == "/M":
word += texts[i]
label_index += 1
elif texts[i:i+2] == "/E":
word += texts[i]
words.append(word)
word = ""
label_index += 1
else:
continue
return words
s = "大/B学/M生/E的/S生/B活/E很/S丰/B富/E。/S"
print(extract_label(s))
print(extract_word(s))
```
输出结果为:
```
['B', 'M', 'E', 'S', 'B', 'E', 'S', 'B', 'E', 'S']
['大学生', '的', '生活', '很', '丰富', '。']
```
阅读全文