基于规则匹配命名实体识别NER代码
时间: 2023-11-12 21:46:34 浏览: 241
以下是一个基于规则匹配的命名实体识别代码示例,使用Python语言和正则表达式进行匹配:
```python
import re
def rule_based_ner(text):
# 定义规则匹配模式
pattern_name = r"(?<=姓名为)[\w ]+"
pattern_phone = r"(?<=电话号码为)\d{11}"
pattern_email = r"[\w]+@[a-z0-9]+\.[a-z]+"
# 匹配文本中的实体
name = re.search(pattern_name, text)
phone = re.search(pattern_phone, text)
email = re.search(pattern_email, text)
# 返回识别结果
result = {}
if name:
result["name"] = name.group(0).strip()
if phone:
result["phone"] = phone.group(0).strip()
if email:
result["email"] = email.group(0).strip()
return result
# 测试代码
text = "我的姓名为张三,电话号码为13812345678,邮箱为zhangsan@example.com"
result = rule_based_ner(text)
print(result) # {'name': '张三', 'phone': '13812345678', 'email': 'zhangsan@example.com'}
```
以上代码定义了三个正则表达式模式,分别用于匹配姓名、电话号码和电子邮件地址。然后使用`re.search()`函数在文本中查找匹配的实体,并将结果存储在一个字典中返回。在测试代码中,我们将一段包含姓名、电话号码和电子邮件地址的文本传递给`rule_based_ner()`函数,并打印输出识别结果。
阅读全文