Algorithm 识别一个人';s的名字与词典中的单词

Algorithm 识别一个人';s的名字与词典中的单词,algorithm,search,nlp,dictionary,Algorithm,Search,Nlp,Dictionary,有什么方法可以识别一个词可能是/不可能是一个人的名字吗 因此,如果我看到“理解”这个词,我得到的概率是0.01,而“约翰逊”这个词返回的概率是0.99,而像史密斯这样的词返回的概率是0.75,像苹果这样的词返回的概率是0.15 有没有办法做到这一点 目标是,如果有人搜索,比如说Charles Darwin galapagos,搜索引擎会猜测它应该只根据单词(或不构成句子的一系列单词)搜索作者字段中的Charles和Darwin,以及galapagos的标题和摘要字段,我会说不,或者至少不能提供比

有什么方法可以识别一个词可能是/不可能是一个人的名字吗

因此,如果我看到“理解”这个词,我得到的概率是0.01,而“约翰逊”这个词返回的概率是0.99,而像史密斯这样的词返回的概率是0.75,像苹果这样的词返回的概率是0.15

有没有办法做到这一点

目标是,如果有人搜索,比如说
Charles Darwin galapagos
,搜索引擎会猜测它应该只根据单词(或不构成句子的一系列单词)搜索作者字段中的
Charles
Darwin
,以及
galapagos的标题和摘要字段,我会说不,或者至少不能提供比“已知单词词典”查询更多的信息

不同的语言环境也会有不同的可能性,这在很大程度上取决于单词在句子中的位置,以及其他单词是否表示它是名称或其他名词/动词

例如,“单词”可能是:

  • 名词-“页面上的单词模糊”
  • 动词-“我仔细地用词造句”
  • 形容词-“我喜欢文字游戏”
  • 专有名称-“我的朋友对我很好”

  • 这完全取决于句子中的上下文和位置,以及语言之间的变化规则。此外,新名字也经常被发明——明年五月的“加拉帕戈斯”将取代“利亚姆”

    自然语言处理中的一项相关任务称为命名实体识别,它涉及人员、组织、地点等的名称


    大多数用于解决这个问题的模型本质上是统计的,并且在预测中使用上下文和先验知识。有许多开源实现可以使用,例如,请参阅。

    我的快速破解方法是:

    从人口普查局的人名列表中按受欢迎程度排序,这是免费提供的。给每个名字一个标准化的受欢迎程度分数(1.0=最受欢迎,0.0=最不受欢迎)

    然后,获取一个开源词典,并做一些研究来收集每个单词的频率分数。你可以找到一个。给每个单词分配一个流行度分数,1.0到0.0。方便的是,如果你在频率表上找不到一个词,你可以假设它是一个非常不常见的词


    在两个列表中查找一个单词。如果只是其中一个,你就完了。如果两者都是,使用公式计算加权概率。。。比如(名字流行度)/(名字流行度+其他流行度)。如果它不在任何一个列表中,它很可能是一个名字。

    对照一个巨大的已知名字列表检查名字是否有效?好的,一种方法(并非所有情况下都是如此)是检查名字是否真的在字典中。因为,大多数时候,一个名字没有意义
    (你的查尔斯·达尔文)
    。如果没有,那么你可以断定这是一个名字。如果是这样的话,我就不知道该怎么做了。@amit:galapagos
    可能是一个人的名字,对吧@KirkBroadhurst-这是否意味着
    Charles
    被认为是一个名字,而
    Charles
    不是?@KirkBroadhurst在谈论搜索查询时,大写字母是一个可怕的东西。大多数用户在搜索查询中没有使用正确的表单。想想你自己,你是在谷歌上寻找埃德加·迪克斯特拉还是埃德加·迪克斯特拉(如果我能向你保证,你是少数派)+1-这比我所想的基本字典查找比较有用得多(假设被排除在外),可能是一个名字,也可能是一个拼写错误,可以是一个外来词,也可以是一个专有名词,但不是一个人的名字。请注意,我不是在批评,我只是指出字典信息和上下文信息是互补的。考虑”约翰 回家晚了“对”那是一个谴责的 “这是件大事,”他说。由于之前没有见过任何一个词,人类仍然会认为第一个词表示某个人或其他有生命的对象,并且很可能是该对象的名称,而第二个词不太可能这样做。