machine-learning - 根据示例学习用关键字标记句子

标签 machine-learning nlp

我有一组(约 50k 元素)小文本片段(通常是一个或两个句子),每个片段都标记有从约 5k 单词列表中选择的一组关键字。

我将如何实现一个系统,通过从这个示例中学习,可以使用同一组关键字标记新句子?我不需要代码,我只是在寻找一些关于如何实现它的指针和方法/论文/可能的想法。

最佳答案

如果我很理解你的话,你需要的是一对文档的相似性度量。我最近一直在使用TF-IDF用于文档聚类,并且运行良好。我认为在这里你可以使用 TF-IDF 值并计算 cosine similarity获取每个文档相应的 TF-IDF 值。

  1. TF-IDF 计算

TF-IDF代表Term Frequency - Inverse Document Frequency 。以下是计算方法的定义:

Compute TF-IDF values for all words in all documents                                    
    - TF-IDF score of a word W in document D is

             TF-IDF(W, D) = TF(W, D) * IDF(W) 

      where TF(W, D) is frequency of word W in document D
            IDF(W) = log(N/(2 + #W))
            N  - number of documents
            #W - number of documents that contain word W
   
    - words contained in the title will count twice (means more important)
    - normalize TF-IDF values: sum of all TF-IDF(W, D)^2 in a document should be 1.

根据您使用的技术,这可以通过不同的方式实现。我已经使用嵌套字典在 Python 中实现了它。首先我使用文档名称D作为键,然后为每个文档 D我有一个嵌套字典,其中包含单词 W作为键,每个单词W都有一个对应的数值,即计算出的TF-IDF .

  • 相似度计算
  • 假设您已经计算了 TF-IDF值已经存在并且您想要比较 2 个文档 W1W2他们多么相似。为此,我们需要使用一些相似性度量。有很多选择,每一种都有优点和缺点。在这种情况下,IMO,Jaccard similaritycosine similarity会很好的。这两个函数都有 TF-IDF以及 2 个文档的名称 W1W2作为其参数,它将返回一个数值,该数值指示两个文档的相似程度。

    计算两个文档之间的相似度后,您将获得一个数值。值越大,2个文档越相似W1W2是。现在,根据您想要实现的目标,我们有 2 个场景。

    • 如果您希望为 1 个文档仅分配最相似文档的标签,那么您可以将其与所有其他文档进行比较,并将最相似文档的标签分配给新文档。
    • 您可以设置一些阈值,并且可以为与相关文档相似度大于阈值的文档分配所有标签。如果您设置threshold = 0.7 ,比所有文档 W 都将具有所有已标记文档的标签 V其中similarity(W, V) > 0.7 .

    希望对您有所帮助。

    祝你好运:)

    关于machine-learning - 根据示例学习用关键字标记句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32442314/

    相关文章:

    machine-learning - 使用 IsolationForest 检测高维数据集异常值的正确方法

    python - 如何在Python随机森林模型中删除可预测值(y)

    python - 完美分类时计算ID3算法中属性的熵

    python - 在python中,如何计算特定日期超过 "base date"有多少天?

    algorithm - 基于文档重要性的句子排序算法

    python - 如何将nltk中的特征写入txt文件?

    validation - 如何从交叉验证的数据创建学习曲线?

    perl - 关于使用 Lingua-TreeTagger-0.06

    python - sklearn 如何使用多个保存的模型合并和预测数据

    python - key 错误 : "Unknown task summarization, available tasks are [' feature-extraction', 'sentiment-analysis' 、 'ner' 、 'question-answering' 、 'fill-mask' ]"