我想比较我的三个语料库有多复杂(多变或可预测)。它们来自不同的主题,所以有些词汇不同,有些是相同的。查看其中一个数据集,很明显语法比其他两个更难,句子更长等。我使用SRILM工具包(我是语言建模的新手)构建了单词N-Gram语言模型。我可以比较这些模型的想法。与语言模型有关的一个措施是困惑。我对以下问题感到困惑:我可以直接使用三个LM的困惑来衡量语料库的多样性吗?语料库的词汇量和大小是不同的,所以现在我认为这不是一个很好的比较。我也用POS-Tags构建了LM,但POS-Tagging结果的质量并不好,因为语言来自论坛,有拼写错误,不合语法的句子等等。可以使用哪些度量来比较来自不同域的语料库的复杂性?我很感激你的建议。 [我是Stackexchange的新手。我在Crossvalidated上发布了这个,但我想也许这里是更合适的论坛。]
答案 0 :(得分:2)
"我还从POS-Tags构建了LM,但POS-Tagging结果的质量并不好,因为该语言来自论坛,有拼写错误,不符合语法的句子等等。"
除了吵闹之外,就像你指出的那样,你应该仔细考虑特定的语言特征是否对你的分析有用。一个拥有比例更多名词的语料库是否会让您想要了解有关语料库的内容?也许在作者身份归属等方面,但我无法想到其他任何有效的方法。
如果数据稀疏性存在问题,LSI可以通过将相关术语折叠在一起来提供帮助。这也可以帮助解决拼写问题,如果它们出现在类似的上下文中,则会将拼写错误的单词与正确的对应单词折叠起来。
"语料库的词汇量和大小不同,所以现在我认为这不是一个很好的比较。"
这不是世界末日。拥有更多数据总是更好,但您可以使用您拥有的数据。
如果您还没有选择语言模型,那么您需要做出一些决定:
你提到你有一个语言模型;我假设你的语言模型的概率分布是P(N-gram|topic)
。如果这是正确的,那么您已经对数据进行了标准化,因此两个概率分布应该很容易比较。拥有更多数据会让您获得更可靠的结果,但如果您的语料库足够大并且#34;为了可靠地对每个主题进行抽样,您可以直接进行比较。
至于比较,请尝试KL-Divergence。 KL-Divergence是衡量Q用于近似P时丢失信息的指标。"减少损失意味着语料库更相似。如果你想要一个对称的比较,一个"便宜的"这样做的方法是添加D(P||Q) + D(Q||P)
。但请注意:
如果Q(i)=0⇒P(i)= 0,则对于所有i(绝对连续性),仅定义KL散度。
所以你 以某种方式平滑。