【问题标题】:Way to automatically determine word context/meaning in Python在 Python 中自动确定单词上下文/含义的方法
【发布时间】:2020-05-01 10:23:33
【问题描述】:

我有一个关于不同主题(特别是 subreddit 名称)的 Python 单词列表。我只需要过滤掉有关编程的子目录,例如“linux”、“Python”、“lisp”、“programming”、“ProgrammerHumor”等(注意与大写字母不一致)。有没有自动的方法来做到这一点,例如。 G。使用 NLTK,还是我必须手动完成?

编辑:
显然我最初的问题有点不清楚。所以我有一长串可能的 subreddit 名称,我只想过滤掉那些与编程有关的名称。 我不知道是哪些 - 可能有编程语言名称(“lisp”、“Python”),或通用编程内容(“programming”、“ProgrammerHumor”),或任何编程语言-related ("LearningMachineLearning, "linux")。有什么方法可以自动提取这些,可能使用 NLP,基于单词的含义/上下文,还是我必须手动完成?

【问题讨论】:

  • 请参阅How to Askhelp center
  • 我在下面给出的答案正是你所说的......
  • @HaydenEastwood 你的回答假设我有这个词干列表。我不。我需要通用词列表中的“编程相关”词。 “cats”或“AskReddit”与编程无关,“lisp”是。
  • 好的 - 您在最初的帖子中错过了一个非常关键的点!那肯定是 NLK 问题。

标签: python nlp


【解决方案1】:

我不确定我是否理解您想要实现的目标。但是,如果问题是您是否可以匹配被大写字母污染的单词,您应该将所有内容转换为小写,然后进行 regex 匹配。

在您的情况下,这可能类似于:

第 1 步:安装正则表达式:

pip install regex

第二步:编写代码:


import regex as re
list_of_stuff = ['Python', 'linux', 'lisp', 'programming', 'ProgrammerHumor']
thing_to_find = 'program'
mult3 = map(lambda x: x.find(thing_to_find), list(map(str.lower, list_of_stuff)))
print (list(mult3)) # [-1, -1, -1, 0, 0] -1 = no match, 0 = match

在上面,输出是:

[-1, -1, -1, 0, 0] 

其中-1表示索引不匹配,0表示匹配。

【讨论】:

    【解决方案2】:

    使用类似 spacy() 的相似性方法来检查这个

    【讨论】:

    • 正如目前所写,您的答案尚不清楚。请edit 添加其他详细信息,以帮助其他人了解这如何解决所提出的问题。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 2011-01-30
    • 1970-01-01
    • 2014-03-02
    • 1970-01-01
    • 2021-09-14
    • 2014-04-10
    • 1970-01-01
    • 2014-05-26
    • 1970-01-01
    相关资源
    最近更新 更多