标注集:采用包含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为标注后的句子,返回分词结果列表 # 定义函数,提取标签序列 def extract_label(texts): # 代码实现 # 定义函数,提取分词结果 def extract_word(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'] ['大学生', '的', '生活', '很', '丰富', '。'] 输入: s = "中/B央/M民/M族/M大/M学/E是/S一/B所/E民/B族/M类/E高/B等/E院/B校/E。/S" print( extract_label(s), extract_word(s), sep="\n" ) 结果: ['B', 'M', 'M', 'M', 'M', 'E', 'S', 'B', 'E', 'B', 'M', 'E', 'B', 'E', 'B', 'E', 'S'] ['中央民族大学', '是', '一所', '民族类', '高等', '院校', '。']
时间: 2023-12-14 07:02:34 浏览: 63
算法训练模拟数据集-程序自动生成,适用于开发青海省相关车牌识别项目-蓝色模拟车牌资源
下面是实现函数extract_label和extract_word的代码:
```python
def extract_label(texts):
result = []
for char in texts:
if char == ' ':
continue
elif char == '/':
continue
else:
result.append(char)
return result
def extract_word(texts):
result = []
words = texts.split('/')
for word in words:
if len(word) == 0:
continue
elif len(word) == 1:
result.append(word)
else:
if word[0] == 'S':
result.append(word[2:])
elif word[0] == 'B':
if word[-1] == 'E':
result.append(word[2:-2])
else:
temp = word[2:]
elif word[0] == 'M':
if word[-1] == 'E':
result.append(temp + word[2:-2])
else:
temp = temp + word[2:]
return result
```
测试代码如下:
```python
s = "大/B学/M生/E的/S生/B活/E很/S丰/B富/E。/S"
print(extract_label(s))
print(extract_word(s))
s = "中/B央/M民/M族/M大/M学/E是/S一/B所/E民/B族/M类/E高/B等/E院/B校/E。/S"
print(extract_label(s))
print(extract_word(s))
```
输出结果如下:
```
['B', 'M', 'E', 'S', 'B', 'E', 'S', 'B', 'E', 'S']
['大学生', '的', '生活', '很', '丰富', '。']
['B', 'M', 'M', 'M', 'M', 'E', 'S', 'B', 'E', 'B', 'M', 'E', 'B', 'E', 'B', 'E', 'S']
['中央民族大学', '是', '一所', '民族类', '高等', '院校', '。']
```
阅读全文