【问题标题】:What area deals with the extraction of words with similar characteristics?哪个领域处理具有相似特征的词的提取?
【发布时间】:2012-07-14 00:24:58
【问题描述】:

我有一个带有注释的数据集,格式为:<Word/Phrase, Ontology Class>,其中 Ontology Class 可以是以下{Physical Object, Action, Quantity} 之一。我已经从大量文本语料库中为我的特定本体模型手动创建了这个数据集。

因为这个过程是手动的,所以我确信我可能遗漏了语料库中的一些单词/短语。如果是这种情况,我正在寻找从同一个语料库中自动提取其他单词的方法,这些单词与标记数据集中的这些单词具有“特征”。因此,第一个任务是在我开始提取其他单词之前定义“特征”。

我可以使用任何标准技术来实现这一目标吗?

编辑:对不起。我应该提到这些是 WordNet 中找不到的特定领域的词。

【问题讨论】:

    标签: python machine-learning nlp nltk


    【解决方案1】:

    看看chapter 6 的 NLTK 书。根据您的描述,这听起来像是基于特征(“特征”)提取的监督分类技术可能是一个不错的选择。从书中:

    如果分类器是基于训练构建的,则称为监督分类器 包含每个输入的正确标签的语料库。

    您可以使用您手动编码的一些数据来训练您的分类器。它可能看起来像这样:

    def word_features(name):
        features = {}
        features["firstletter"] = name[0].lower()
        features["lastletter"] = name[-1].lower()
        for letter in 'abcdefghijklmnopqrstuvwxyz':
            features["count(%s)" % letter] = name.lower().count(letter)
            features["has(%s)" % letter] = (letter in name.lower())
        return features
    

    接下来,您可以根据已标记的一些数据训练分类器:

    >> words = [('Rock', 'Physical Object'), ('Play', 'Action'), ... ]
    >>> featuresets = [(word_features(n), g) for (n,g) in words]
    >>> train_set, test_set = featuresets[500:], featuresets[:500]
    >>> classifier = nltk.NaiveBayesClassifier.train(train_set)
    

    您可能应该对已标记的一半数据进行训练。这样你就可以用另一半来测试分类器的准确性。继续处理特征,直到分类器的准确性达到您的要求。

    nltk.classify.accuracy(classifier, test_set)
    

    您可以按如下方式检查各个分类:

    classifier.classify(word_features('Gold'))
    

    如果您不熟悉 NLTK,那么您也可以阅读前面的章节。

    【讨论】:

      【解决方案2】:

      正如 jfocht 所说,您需要一个分类器来执行此操作。要训​​练分类器,您需要一组具有特征及其分类的“事物”训练数据。然后,您可以输入具有特征的新“事物”并进行分类。

      这里的关键是你没有功能,你只有文字。一个想法是使用 WordNet,这是一个花哨的字典,从单词的定义中生成特征。 WordNet 的最佳功能之一是它具有一个单词的层次结构,例如,

      cat -> animal -> living thing -> thing ....
      

      您可能只需遵循层次结构即可做到这一点,但如果不能,您可以从中添加特征并对其进行训练。这可能比使用单词本身作为特征要好得多。

      无论您是否发现 Wordnet 有用,您都需要一个特征集来训练您的分类器,并且您还必须使用这些特征标记所有未分类的数据,因此除非您有某种方法可以计算地完成特征部分,手工做会少一些工作

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-12-23
        • 2013-01-26
        • 2017-04-14
        • 2017-09-12
        • 2018-09-14
        • 2020-02-05
        相关资源
        最近更新 更多