【问题标题】:Simple Java Sentence Classification program简单的Java句子分类程序
【发布时间】:2017-04-04 13:06:40
【问题描述】:

我需要一些关于句子分类程序形式的帮助。

读取文件并检查文件中的每个句子以找到任何“关键字”的程序。关键字在另一个文件中,其中写有单词。如果它找到一个关键字,它就会将该句子写入另一个文件。

到目前为止,我对输入文件的读取和分割成句子以及输出文件的编写都很满意

您能否就程序如何读取第一个文件中的每个句子并将其与第二个文件中的单词进行比较以及如果它在句子中找到关键字写入第三个文件中给出一些指导?

非常感谢!

【问题讨论】:

  • 将所有单词加载到HashSet;按单词拆分输入;使用set.contains(word)
  • 正则表达式方法不是更合适吗??
  • @user992484 什么是“正则表达式方法”?

标签: java nlp sentence


【解决方案1】:

您可以使用 Scanner 读取文件并直接提取单词。

您可以加载所有关键字以在 TreeSet 中进行比较,然后如果找到,您将写入 FileWriter

【讨论】:

    【解决方案2】:

    关键字是一个集合,我想。您需要快速访问它们,因此请使用HashSet

    如果您的关键字应该只匹配并且只匹配您句子中的精确对应项,请用任何空格(\\s+ regex)分割您的句子,并尝试将句子中的每个单词与关键字中的元素匹配。

    您可以通过这种方式构建依赖关系图,因此您可以拥有一个 HashMap,其中关键字是键,值是引用该关键字的句子集。

    最后,你可能会得到这样的结果:

    [Keyword="StackOverflow"]
        [Values=
            "I like posting on StackOverflow.",
            "StackOverflow is cool."
        ]
    [Keyword="posting"]
        [Values=
            "I like posting on StackOverflow."
        ]
    

    【讨论】:

      【解决方案3】:

      我可以给出一个基于 PHP 的解决方案-

      1. 解析句子字符串。
      2. 使用 strtok() 函数,将常用的标点符号(",'()/ etc) 定义为分词器/分类器。

      3. 形成包含预定义词的数据字​​典的数组/集合。

      4. 使用 preg_match() 函数,对于完整的单词匹配,你可能想使用指定的结构来构建数组 as--> $variable = array ("/(\bword1\b)/", "/( \bword2\b)/")。

      5. 对于上述功能的参考目的/规范,请搜索 php 文档 - http://www.php.net/

      希望我能帮上忙。

      干杯。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-11-12
        • 2015-01-17
        相关资源
        最近更新 更多