【问题标题】:Parsing and indexing documents with Apache Tika使用 Apache Tika 解析和索引文档
【发布时间】:2015-07-16 21:53:02
【问题描述】:

我正在尝试使用 apache Tika 将 .doc 文件解析和索引到 elasticsearch。 其实我的项目是为我的公司做一个简历搜索引擎。

由于我们有标准化的简历格式,我想在 Java 中使用 apache tika 解析这些简历。

基本上我有一个这样的 .doc 文件:

   Jean Wisser                                           avenue des Ternes
                                                          75017 Paris
   Business Intelligence Consultant

   Skills : Qlikview, SAS, Cognos, ...
   Companies : IBM, Orange, ...

我想像这样提取和解析内容以在 elasticsearch 中对其进行索引:

 XContentBuilder builder = jsonBuilder()
    .startObject()
        .field("Name", "Jean")
        .field("Lastname", "Wisser")
        .startObject("Adress")
                .field("Street", "avenue des Ternes")
                .field("City", "Paris")
           ......
           .endObject()
    .endObject()

实现这一目标的最佳方法是什么? 我应该使用 Tika、POI 还是其他方式?

【问题讨论】:

  • 你的word文件的不同部分是否应用了不同的样式?还是只是随机/没有样式?
  • 是的,它们有不同的样式,但我不知道如何提取它们。当我用 tika 提取内容时,我只得到纯文本
  • 你怎么称呼蒂卡?如果您的要求正确,Tika 会很乐意为您提供 XHTML!
  • 当我得到 XHTML 时,它只给了我基本的

    标签,这些标签并不可靠,因为有时人们忘记将标题加粗或保持与以前相同的布局。相反,我使用正则表达式来识别简历中的块。

标签: parsing elasticsearch apache-poi apache-tika


【解决方案1】:

我不知道我是否理解你的问题,但是如果你想要一个工具来帮助你提取与'.doc'文件中每种类型的信息相对应的信息,Tika 不能为你做到这一点自动(如果它们尚未在文档的元数据中),但您需要先准备数据(提取文本并编写自己的程序来解析和提取数据)。提取数据后,您可以使用所需字段为文档编制索引。

【讨论】:

  • 是的!这正是我想要做的,但我不知道应该用什么来解析我的 .doc 文件。实际上,我曾考虑使用 Tika 将我的文件转换为 XHTML,然后使用 XPATH 之类的东西来提取我的字段。你有什么建议吗?
  • 嗯,首先,在考虑索引之前,先考虑提取所需的信息。您可以逐行阅读您的文档,并且您可以使用一些正则表达式来帮助自己提取您需要的数据。例如,如果该行以“技能:”开头,则该行的其余部分是技能列表。您还可以使用正则表达式提取地址或使用 GATE(文本工程通用架构)从文档中提取地址,如果需要,将结果保存在 xml 文件中。
  • 对于人名,如果所有文件的第一行都以人名开头,应该很容易提取出来。如果没有,您需要使用斯坦福 NER 进行实体识别。 NER 将为您提供文本中存在的人名列表。 NER 也可以提取企业名称,但我认为在您的情况下,简单搜索以“公司:”开头的行就足以让您获得文档中的公司列表。
  • 对于您的建议,我认为 XHTML 不会有帮助。但是你可以试试:)
  • 非常感谢您的回答。实际上我想使用 XHTML,因为 Tika 可以将任何文件格式解析为 XHTML,所以如果我收到另一种文件格式(.pdf,...),我的解析方法将始终使用标准 XHTML 输入。
猜你喜欢
  • 2011-09-02
  • 1970-01-01
  • 1970-01-01
  • 2017-10-18
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 2017-09-09
相关资源
最近更新 更多