gpt4 book ai didi

statistics - 统计语言模型 : comparing word sequences of different lengths

转载 作者:行者123 更新时间:2023-12-02 00:04:59 25 4
gpt4 key购买 nike

我有一个从文本中提取公司名称的算法。它通常做得很好,但是,它有时也会提取看起来像公司名称但显然不是的字符串。例如,“Contact Us”、“Colorado Springs CO”、“Cosmetic Dentist”显然不是公司名称。此类误报太多而无法列入黑名单,因此我想介绍一种对提取的字符串进行排名的算法方法,以便丢弃排名最低的字符串。

目前,我正在考虑使用 statistical language model去做这个。该模型可以根据字符串中每个单词的概率乘积对每个字符串进行评分(考虑最简单的 unigram 模型)。我的问题是:这样的模型可以用来比较不同长度的词序列吗?由于概率根据定义小于 1,因此较长序列的概率通常会小于较短序列的概率。这会使模型偏向于较长的序列,这不是一件好事。

有没有一种方法可以使用这种统计语言模型来比较不同长度的单词序列?或者,是否有更好的方法来实现对序列进行评分?

例如,使用二元模型和一些现有数据,这就是我得到的:

python slm.py About NEC
<s> about 6
about nec 1
nec </s> 1
4.26701019773e-17
python slm.py NEC
<s> nec 6
nec </s> 1
2.21887517189e-11
python slm.py NEC Corporation
<s> nec 6
nec corporation 3
corporation </s> 3593
4.59941029214e-13
python slm.py NEC Corporation of
<s> nec 6
nec corporation 3
corporation of 41
of </s> 1
1.00929844083e-20
python slm.py NEC Corporation of America
<s> nec 6
nec corporation 3
corporation of 41
of america 224
america </s> 275
1.19561436587e-21

缩进线显示模型中的二元组及其频率。 <s></s>分别是句子的开头和结尾。问题是,句子越长,它出现的可能性就越小,无论其构成的双字母组在数据库中出现的频率如何。

最佳答案

你能根据句子长度标准化分数,还是使用 EM algorithm在 unigram、bigram 和 trigram 模型上?

9 月 24 日编辑:

您可能可以尝试几种替代方法。一种方法是对 unigram、bigram 和 trigram 模型进行最大似然估计并进行线性插值(参见:http://www.cs.columbia.edu/~mcollins/lm-spring2013.pdf)。对于位置 i 处的每个单词,您可以确定 (i+1) 是否是句子的结尾或最有可能出现的单词。此方法需要您设置训练和测试数据集以评估性能(困惑度)。

我会避免简单地乘以每个单词的概率。当单词不独立时,例如,P (NEC, Corporation) != P (NEC) * P (Corporation)。

关于statistics - 统计语言模型 : comparing word sequences of different lengths,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18928243/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com