当前位置: 首页 > 知识库问答 >
问题:

印度地名识别模型

邵骁
2023-03-14

我计划使用命名实体识别(NER)技术从给定文本中识别人名(大部分是印度名字)。我已经从斯坦福NLP探索了基于CRF的NER模型,但是它在识别印度名字方面并不十分准确。因此,我决定通过监督培训创建自己的自定义NER模型。我对如何使用斯坦福大学的NER CRF创建自己的NER模型有一个大致的想法,但创建一个带有手动注释的大型训练语料库是我想避免的事情,因为这对个人来说是一项巨大的工作,其次,从印度不同的州获得不同的人名也是一个挑战。有人能提出任何自动化/程序化的方法来准备一个至少有10万个印度名字的带标签的训练语料库吗
我已经研究了Facebook和LinkedIn API,但没有找到从给定位置(例如印度)提取10万个用户全名的方法。

共有3个答案

劳麒
2023-03-14

建议:你可以尝试利用印度版的维基百科进行培训或自动创建地名录。

我不知道这是否是有效/快速的解决方案,但许多研究利用了维基百科和他的半结构化内容(例如,每个页面都有几个类别的注释)。

你可以看看这些文章,找到一个有趣的想法:https://scholar.google.fr/scholar?q=named基于维基百科的实体识别

漆雕嘉茂
2023-03-14

这个网站为我们做到了这一点!它为这些问题提供了解决方案:印度语言的挑战。印度语言属于几个语系,主要是印欧语系、印度雅利安语系和德拉维语系。NER面临的挑战来自几个因素。下面列出了一些主要因素——词根识别困难,需要使用形态分析器——没有大写特征——在英语中,大写是主要特征之一,而在印度语言中则没有这种特征——常见名词和专有名词之间的歧义。例如:“Roja”等常用词的意思是“玫瑰花”是一个人的名字拼写变化——在网络数据中,我们发现不同的人对同一实体的拼写不同——例如:在泰米尔人名中,Roja的拼写为“rosa”,“Roja”。提供了整个语料库。

印度语言和英语的命名实体识别

祝你好运,获取zip文件的密码!

干杯!

微生翼
2023-03-14

我最后做了以下工作来创建一个识别印度名字的NER模型。这对于任何想要创建自定义NER模型来识别非英语人名的人来说都是有用的,因为大多数公开可用的NER模型,比如斯坦福NLP的模型,都是用英语名字训练的,因此在识别英语(英国/美国)名字时更准确。

  1. 找到一位拥有Twitter账号、在Twitter上拥有大量粉丝的印度名人(就我而言,我选择了Sachin Tendulkar)
  2. 用你选择的语言创建一个程序,调用Twitter REST API(GET followers/list),获取名人所有粉丝的名字,并保存到一个文件中。我们可以放心地认为,大多数追随者都是印度人。请注意,有一个API速率限制(每15分钟窗口30个请求),所以应该内置程序来处理这个问题。在我们的例子中,我们开发了一个Windows服务程序,每15分钟运行一次
  3. 由于一些Twitter用户的名字可能不是有效的人名,因此建议添加一些基于规则的逻辑(如RegEx)来过滤看似真实的名字,并仅将其添加到文件中
  4. 生成实名文件后,创建另一个程序来创建培训数据文件,其中包含标记/注释为PERSON的名称以及注释为OTHER的非实体名称。如果您使用的是Stanford NER CRF分类器,程序应该生成一个包含两列的训练(TSV)文件——一列包含单词(token),第二列提到标签
  5. 以编程方式生成训练语料库后,您可以按照以下链接创建自定义的NER模型,以识别印度人的名字:http://nlp.stanford.edu/software/crf-faq.shtml#a
 类似资料:
  • 我正在使用OpenNLP模型进行名称实体识别,但问题是它只会识别基于美国和英国的名称(外国名称),因此我需要识别印度名称。 怎么可能?

  • 借助ML Kit的地标识别API,您可以识别图像中的一些广为人知的地标。 当您将图片传递给此API时,您会看到其中已识别的地标,以及每个地标的地理坐标和发现地标的图像区域。您可以使用此信息自动生成图像元数据,根据用户共享的内容为用户创建个性化体验等等。 iOS Android 核心功能 识别著名的地标 获取自然或者已建地标的名称和地理坐标以及地标所在图像的区域。试用 Cloud Vision AP

  • 问题内容: 我正在使用石英进行日程安排。 它接受5个参数。(秒,分钟,小时,daysOfMonth,月份)。 当我通过第四个参数作为“ 09”。Eclipse给我错误“ int类型的文字八进制09(数字9)超出范围”。 但是,当我将第四个参数作为“ 9”而不是“ 09”传递时,它起作用了。 谁能解释这个错误? 问题答案: 在Java中,如果要定义整数,则前导“ 0”将表示您正在以八进制定义数字

  • 有人能指出openNLP NameFinder模块使用的算法吗?代码很复杂,只有很少的文档记录,并且将其作为黑匣子(提供默认模型)使用给我的印象是它主要是启发式的。以下是一些输入和输出示例: 输入: 约翰·史密斯很沮丧。 约翰·史密斯很沮丧。 巴拉克·奥巴马感到沮丧。 乌戈·查韦斯很沮丧。(不再) 杰夫·阿特伍德很沮丧。 刘冰对openNLP NER模块感到失望。 诺姆·乔姆斯基对这个世界感到沮丧

  • 我正在使用OpenNLP模型进行名称实体识别。 我正在传递句子,我想在其中识别单词。Open NLP需要一个String[]变量,因此我将String拆分为用空格分隔的单词。 我面临着识别日期的问题。例如,如果字符串包含日期:2012年1月7日,我将字符串拆分为单词,“7”、“1”和“2012”将被分隔为3个不同的单词。虽然它们被识别为日期,但这3个不同的标记对我来说没有意义进行进一步处理。我怎么

  • 默认情况下,在前端也具有QuestionResponseBodyDTO类型。ActivityListResponseDTO也在前端扩展了这一点,因此它应该可以工作。但是由于某些原因,程序没有在内部if语句中运行,并且从未被记录。 是不是我做错了什么?