【问题标题】:How to find keywords (useful words) from text?如何从文本中找到关键字(有用的词)?
【发布时间】:2010-10-18 16:08:12
【问题描述】:

我正在做一个实验项目。

我想要实现的是,我想找到该文本中的关键字是什么。

我试图做到这一点的方法是列出一个单词在文本中出现的次数,按最常用的单词排序。

但问题是一些常见的词,如 is,was,were 总是在顶部。显然这些都不值得。

你们能不能给我一些好的逻辑来做这件事,所以它总能找到好的相关关键字?

【问题讨论】:

标签: php keyword


【解决方案1】:

使用Brill Parser 之类的东西来识别不同的词性,例如名词。然后只提取名词,并按频率排序。

【讨论】:

    【解决方案2】:

    好吧,您可以使用 preg_split 来获取单词列表以及它们出现的频率,我假设这就是您到目前为止所做的工作。

    关于去除不重要的单词,我唯一能想到的就是拥有一个你想忽略的单词字典,包含“a”、“I”、“the”、“and”等。使用这本字典过滤掉不需要的词。

    你为什么这样做,是为了搜索页面内容吗?如果是这样,那么大多数后端数据库都提供某种文本搜索功能,例如 MySQL 和 Postgres 都有一个全文搜索引擎,它会自动丢弃不重要的单词。我建议使用您正在使用的后端数据库的全文功能,因为他们很可能已经在实现满足您要求的东西。

    【讨论】:

    • 是的,我也想到了这个,忽略一些已知的不值得的话。但问题是我不是以英语为母语的人,所以我的基本语法规则很弱。我认为不值得的清单话会很长。我能有一份清单吗(我不知道“他她我我”的名字可能是“第一人称”)。
    • “我”、“你”、“他”、“她”、“它”、“我们”、“他们”都是人称代词
    【解决方案3】:

    我对此类事情的第一种方法是更多的数学建模,而不是纯编程。

    有两种“简单”的方法可以解决这样的问题; a) 排除列表(惩罚您认为无用的单词集合) b)使用权重函数,例如。建立在词长的基础上,因此介词 (in, at...) 和代词 (I,you,me,his...) 等小词将受到惩罚,并有望落在中间

    我不确定这是否是您正在寻找的,但我希望它会有所帮助。 顺便说一句,我知道上下文文本处理是一个积极研究的主题,您可能会发现许多有趣的项目。

    【讨论】:

    猜你喜欢
    • 2019-09-03
    • 1970-01-01
    • 2020-01-23
    • 2023-03-07
    • 1970-01-01
    • 2019-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多