java - 未知单词的 IDF 分数?

标签 java nlp opennlp tf-idf

我的任务是从文本中提取关键字。我所做的如下:

我正在使用 tf-idf“算法”。对于 idf 部分,我正在抓取维基百科文章并提取名词短语 (opennlp) 并将它们存储在数据库中。

因此,当我分析文本时,我只需计算 tf 部分并从数据库中获取 idf 部分。

到目前为止的结果非常有吸引力。我唯一的问题是 -> 由于我必须分析的文本与维基百科语料库不同,某些单词具有较高的 tf 但没有 idf 值(在维基语料库中未找到)。但有时这些词仍然非常重要(例如一家尚未在维基百科上列出的新公司)。

如果在数据库(语料库)中找不到它,我应该将什么作为 idf 值? (平均 idf 可能不是一个好主意)

最佳答案

IDF是如何计算的?

如果您有类似 IDF = log_e(# of Documents/# of Documents with term) 的内容,您可以执行 log_e(# of Documents +1/1)。即将该文档视为语料库中的新文档。

关于java - 未知单词的 IDF 分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33176328/

相关文章:

docker - 自动编辑dockerized容器中的文件

java - 我如何在 OpenNLP 中训练命名实体识别器标识符?

java - 从类 "Parse"opennlp 获取文本

java - Postgres + Hibernate + Java UUID

java - 通过从 Java 8 到 Java 11 的 CDATA XML 转换处理换行符的变化

java - 使用 jsch 和 sftp 读取远程文件 - 失败 4

java - 无法运行程序线程 "main"NoClassDefFoundError : (wrong name: access/control/accessControlUI) 中出现异常

python - 实体检测 - 与英文单词冲突的实体

parallel-processing - 特征选择、特征提取、特征权重的区别

machine-learning - 识别区分类别时最有用的单词