Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 基于某些预定义类别的标记词_Java_Nlp_Stanford Nlp_Linguistics - Fatal编程技术网

Java 基于某些预定义类别的标记词

Java 基于某些预定义类别的标记词,java,nlp,stanford-nlp,linguistics,Java,Nlp,Stanford Nlp,Linguistics,考虑到我们有16个不同的类别,例如计算机、科学、艺术、商业等。我们在每个类别下都有一些词作为同义词、同音词等,它们描述了每个主题及其范围的可能含义。因此,可能会有类似的或甚至相同的词属于多个类别。我们的目标是向系统提交一个查询(在停止删除单词后,最大长度为3),并要求系统将该单词放入具有最高相似性的类别中。所以我的问题是,除了余弦相似性,还有什么好的方法可以做到这一点吗 我已经知道了WordNet及其扩展版本extjwnl,但是,我希望实现一个能为我的小用途提供足够灵活性的版本。因此,除了词干分

考虑到我们有16个不同的类别,例如计算机、科学、艺术、商业等。我们在每个类别下都有一些词作为同义词、同音词等,它们描述了每个主题及其范围的可能含义。因此,可能会有类似的或甚至相同的词属于多个类别。我们的目标是向系统提交一个查询(在停止删除单词后,最大长度为3),并要求系统将该单词放入具有最高相似性的类别中。所以我的问题是,除了余弦相似性,还有什么好的方法可以做到这一点吗


我已经知道了
WordNet
及其扩展版本
extjwnl
,但是,我希望实现一个能为我的小用途提供足够灵活性的版本。

因此,除了词干分析、柠檬化等改进性能之外,几乎没有什么可以做的。 现在,根据相似性,您可以使用LDA(潜在Dirichlet分配)将每个文档视为多个主题的组合。 LDA将文档表示为主题的混合体,这些主题以一定的概率吐出单词。它假定文档是按以下方式生成的:在编写每个文档时,您

确定文档将包含的字数N(例如,根据泊松分布)。 为文档选择一个主题组合(根据固定的K个主题集上的Dirichlet分布)。例如,假设我们有上面的两个食物和可爱的动物主题,您可以选择文档由1/3食物和2/3可爱的动物组成。 通过以下方式生成文档中的每个单词w_i: 首先选择一个主题(根据您在上面取样的多项式分布;例如,您可能以1/3的概率选择食物主题,以2/3的概率选择可爱的动物主题)。 使用主题生成单词本身(根据主题的多项式分布)。例如,如果我们选择了食物主题,我们可能会以30%的概率生成单词“西兰花”,以15%的概率生成单词“香蕉”,等等。 假设此生成模型用于文档集合,LDA然后尝试从文档回溯,以找到可能生成集合的一组主题

虽然这是无监督的培训,主题(类别是潜在的),但您可以使用名为LLDA(标记为LDA)的LDA扩展


我不推荐使用WordNet和余弦相似度,因为它们不考虑术语的共同出现,因此可能对所有数据集都不起作用。

< P>所以,可以做一些事情来提高性能,比如词干、词义化,从而适当地计算相似度。 现在,根据相似性,您可以使用LDA(潜在Dirichlet分配)将每个文档视为多个主题的组合。 LDA将文档表示为主题的混合体,这些主题以一定的概率吐出单词。它假定文档是按以下方式生成的:在编写每个文档时,您

确定文档将包含的字数N(例如,根据泊松分布)。 为文档选择一个主题组合(根据固定的K个主题集上的Dirichlet分布)。例如,假设我们有上面的两个食物和可爱的动物主题,您可以选择文档由1/3食物和2/3可爱的动物组成。 通过以下方式生成文档中的每个单词w_i: 首先选择一个主题(根据您在上面取样的多项式分布;例如,您可能以1/3的概率选择食物主题,以2/3的概率选择可爱的动物主题)。 使用主题生成单词本身(根据主题的多项式分布)。例如,如果我们选择了食物主题,我们可能会以30%的概率生成单词“西兰花”,以15%的概率生成单词“香蕉”,等等。 假设此生成模型用于文档集合,LDA然后尝试从文档回溯,以找到可能生成集合的一组主题

虽然这是无监督的培训,主题(类别是潜在的),但您可以使用名为LLDA(标记为LDA)的LDA扩展


我不推荐使用WordNet和余弦相似度,因为它们不考虑术语的共同出现,因此可能对所有数据集都不起作用。

< P> JACARD相似性也可用于您的情况。

Jaccard相似度将一个句子转换成一个集合,然后找到文档之间的交集,我们必须在这些交集上找到相似度


有关Jaccard相似性的更多信息,请查看

Jaccard相似性也可用于您的案例

Jaccard相似度将一个句子转换成一个集合,然后找到文档之间的交集,我们必须在这些交集上找到相似度


有关Jaccard相似性的更多信息,请查看

能否更具体一点?描述一下这个“查询”,我不知道你所说的最大长度是什么意思。听起来您需要能够使用“按引用传递”和“按值传递”。这种Java语言很难实现,因为它不支持指针。如果这是你感兴趣的逻辑,你需要每个词包含它所适合的所有类别。因此,类别在每个单词中都需要有某种参考。如果您想使用java,您将需要某种oop模型,如果速度是一个问题,这可能会很困难。需要更多信息。@bigcodeszzer max length表示查询包含的最大关键字数。假设我们有“打印机激光喷射”作为查询。我们希望将其分配给具有最高相似性的类别。每个类别都有一袋最相关的单词。所以我的问题是,怎么做?听起来你正在做的是v