【问题标题】:Defining the context of a word - Python定义单词的上下文 - Python
【发布时间】:2011-01-30 20:09:01
【问题描述】:

我认为这是一个有趣的问题,至少对我来说是这样。


我有一个单词列表,比如说:

照片、免费、搜索、图片、css3、css、教程、网页设计、教程、谷歌、中国、审查、政治、互联网

我有一个上下文列表

  • 编程
  • 世界新闻
  • 技术
  • 网页设计

如果可能,我需要尝试将单词与适当的上下文匹配。

也许以某种方式发现单词关系。


有什么想法吗?

我们将不胜感激!

【问题讨论】:

  • 我不认为有现成的解决方案。也许一些机器学习算法?
  • 请尝试更好地解决问题。例如:a)“单词列表”中的单词 [a priori] 是完全独立的,还是我们可以从相邻单词中推断出它们的一些“上下文”。 b) 是预定义的上下文列表还是算法应该发现这些 c) 一个词可以同时属于多个上下文 d) 这与以“语音”图像为中心的词树有什么关系...
  • @RadiantHex:鉴于目前为止的几个答案,你可以明白为什么我建议更好地解决问题...Vague questions beget vague answers!
  • @mjv:你是对的,如果我更好地提出问题,我会得到更多有用的答案。我不够具体的原因是我不太确定是否可以做或可以做些什么。

标签: python django dictionary nlp


【解决方案1】:

这听起来更像是一个分类/本体问题,而不是 NLP。尝试WordNet 获取标准本体。

我在您陈述的问题中没有看到任何真正的 NLP,但如果您确实需要一些语义分析或解析器,请尝试 NLTK

【讨论】:

    【解决方案2】:

    这些词是从哪里来的?它们是否来自真实文本。如果是,那么这是一个经典的数据挖掘问题。您需要做的是将您的文档集放入矩阵中,其中行代表单词来自哪个文档,列代表文档中的单词。

    例如,如果您有两个这样的文档:

    D1:需要找到意义。 D2:需要将苹果和橙子分开

    您的矩阵将如下所示:

          Need to find meaning Apples Oranges Separate From
    D1:   1     1   1     1      0      0       0       0
    D2:   1     1   0     0      1      1       1       1
    

    这被称为逐个文档矩阵的术语

    收集完这些统计信息后,您可以使用K-Means 之类的算法将相似的文档分组在一起。由于您已经知道有多少概念,因此您的任务应该会容易一些。 K-Means 是非常慢的算法,可以尝试使用SVD等技术进行优化

    【讨论】:

      【解决方案3】:

      我几天前才发现这个:ConceptNet

      这是一个常识性的本体,所以它可能不像你想的那样具体,但它有一个 python API,你可以下载他们的整个数据库(目前解压后大约 1GB)。请记住他们的licensing restrictions

      如果您阅读由开发它的团队发布的the papers,您可能会获得一些关于如何将您的文字与概念/上下文联系起来的想法。

      【讨论】:

        【解决方案4】:

        您问题的答案显然取决于您尝试将术语映射到的目标分类。一旦你决定了这一点,你就需要弄清楚这些概念应该有多细。正如在其他回复中所建议的那样,WordNet 将为您提供同义词集,即或多或少同义的术语集,但您必须通过其他机制将其映射到“网页设计”或“世界新闻”等概念,因为这些没有在 WordNet 中编码。如果您的目标是一个非常广泛的语义分类,您可以使用 WordNet 的更高级别的概念节点来区分,例如(向上层级)人来自动物,动画来自植物,物质来自固体,具体来自抽象事物,等等。

        另一种可能对您非常有用的分类法是维基百科分类系统。这不仅仅是我刚想出的一个自发的想法,而且已经有a lot of work 关于从 Wikipedia 类别中推导出真正的本体论。看看Java Wikipedia Library - 这个想法是为相关术语(例如'css3')找到一篇维基百科文章,提取这篇文章所属的类别,并根据某些标准选择最好的类别(即“编程”、“技术”和“网络开发”)。根据您要执行的最后一步(选择几个给定类别中最好的)可能会或可能不会困难。

        请参阅here 了解您可以使用的其他本​​体/知识库列表。

        【讨论】:

        • @ferdy 天哪!昨晚我有了使用 Google API 搜索相关维基百科文章的想法,因为像“css3”这样的关键字可能会出现问题。我想我可能会接受您的建议,感谢您提供的非常丰富的答案!
        猜你喜欢
        • 1970-01-01
        • 2019-07-19
        • 1970-01-01
        • 2017-04-02
        • 2021-06-04
        • 1970-01-01
        • 2014-05-26
        • 1970-01-01
        • 2017-04-28
        相关资源
        最近更新 更多