从句子python(波斯文本)中提取名字和姓氏的最佳方法
Posted
技术标签:
【中文标题】从句子python(波斯文本)中提取名字和姓氏的最佳方法【英文标题】:best way to extract the first-name and last-name from sentence python (Persian text) 【发布时间】:2022-01-21 00:17:52 【问题描述】:我有超过 20,000 名和姓氏,我想检查该句子中是否有我的 first-name
或 last-name
的 dataset
,这是我的 dataset
l-name f-name
میلاد جورابلو
علی احمدی
امیر احمدی
这是sentence
示例
sentence = 'امروز با میلاد احمدی رفتم بیرون'
英文版dataset
l-name f-name
Smith John
Johnson Anthony
Williams Ethan
这是英文版的句子
sentence = 'I am going out with John Williams today'
我希望我的输出是这样的
first_name = ['John']
last_name = ['Williams']
【问题讨论】:
如果句子包含多个名字或姓氏怎么办? @TomerS 最好像这样列出他们first_name = ['John', 'Ethan']
取决于,我的问题是,如果一个句子中存在多个名称怎么办?输出会是什么?
【参考方案1】:
只需从每列中获取名称列表,然后检查字符串是否包含这些列表中的任何元素。
import pandas as pd
names = [['John', 'Smith'], ['Anthony', 'Johnson'], ['Ethan', 'Williams']]
df = pd.DataFrame(names, columns = ['f_name', 'l_name'])
fname_list = df['f_name'].to_list()
lname_list = df['l_name'].to_list()
sentence = 'I am going out with John Williams today'
sentence = sentence.split()
fname_exist = [e for e in sentence if(e in fname_list)]
lname_exist = [e for e in sentence if(e in lname_list)]
if(len(fname_exist) > 0 and len(lname_exist) > 0):
print('first name: ' + fname_exist[0])
print('last name name: ' + lname_exist[0])
输出:
first name: John
last name: Williams
【讨论】:
【参考方案2】:如果您想以一种天真的方式处理此问题,您可以考虑使用正则表达式,但是这是基于所有名字和姓氏都大写的假设。
sentence = 'I am going out with John Williams today'
name = re.search(r"[A-Z]1[a-z]+ [A-Z]1[a-z]+", sentence).group()
print(name) # Outputs: John Williams
这将搜索一个大写字母,后跟任意数量的小写字母,然后是一个空格,然后是前一个模式的重复。
除此之外,您可以考虑使用命名实体识别 (NER),使用预构建的库来识别文本中的名称。请参阅此处了解更多详情。 https://www.analyticsvidhya.com/blog/2021/06/nlp-application-named-entity-recognition-ner-in-python-with-spacy/
编辑:
我要补充的是,如果同一个句子中有多个名字,你可以申请re.findall()
:
sentence = 'I am going out with John Williams and William Smith today'
names = re.findall(r"[A-Z]1[a-z]+ [A-Z]1[a-z]+", sentence)
print(names) # Outputs: ['John Williams', 'William Smith']
【讨论】:
以上是关于从句子python(波斯文本)中提取名字和姓氏的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章