【问题标题】:Direction needed: finding terms in a corpus需要的方向:在语料库中查找术语
【发布时间】:2021-10-21 14:12:30
【问题描述】:

我的问题不是关于特定的代码问题,而是关于应对自然语言处理挑战的最佳方向。

一方面,我收集了数百个 Word 和 PDF 文件(然后我可以从中导出原始文本),另一方面还有一个术语列表。术语可以包含一个或多个单词。我需要做的是确定每个术语在哪些文件中使用,应用词干提取和词形还原。

我将如何最好地解决这个问题?我知道如何提取文本、应用标记化、词形还原等,但我不确定如何在文档语料库中搜索词形还原形式出现的术语。

欢迎任何提示。

谢谢!

【问题讨论】:

    标签: python nlp lemmatization


    【解决方案1】:

    我建议你创建一个文档的倒排索引,将每个单词的位置记录在一个列表中,以单词形式作为索引。

    然后您创建一个二级索引,其中您将词形化形式作为键,并将属于词形的形式列表作为值。

    当您查找词形还原词时,例如 go,您会转到二级索引以检索变形的形式,go、goes em>,去,去;接下来,您转到倒排索引并获取每个变形形式的所有位置。

    要以有效的方式实现这一点,请查看 Witten/Moffat/Bell,Managing Gigabytes,这是一本关于此主题的精彩书籍。

    更新:对于多字单元,您可以在索引中计算出来。寻找“软件开发者”,查找“软件”和“开发者”,然后合并位置:每次它们的位置相差1,它们是相邻的,你已经找到了。丢弃所有距离较远的。

    【讨论】:

    • 这是一个有趣的方法。但是,您将如何处理包含多个单词的术语?假设其中一个术语是“软件开发人员”,并且军团可能包含“软件”、“开发人员”和“软件开发人员”的出现。我猜我需要同时添加单词和一个很长的列表,比如三元组。
    • @mrgou 我已经更新了我的答案。这种方法需要一些初始时间来创建索引等,但查找内容非常快。
    猜你喜欢
    • 1970-01-01
    • 2010-10-06
    • 2021-12-15
    • 2017-04-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-05
    相关资源
    最近更新 更多