当前位置: 首页 > 面试题库 >

从Java中的文本文件中提取短语

支铭晨
2023-03-14
问题内容

我正在使用ADFA-
LD数据集进行基于主机的入侵检测项目,现在正在进行特征提取模块。我构建了由长度为4的系统调用短语组成的短语词典。现在,为了进行特征提取,我需要将这些短语与新的系统调用轨迹进行比较(以下是一些示例):

我需要的是,如何将这些短语与新痕迹进行比较。我在用Java做。

我的短语字典:

sys_socketcall-sys_poll-sys_clock_gettime-sys_poll

sys_clock_gettime-sys_poll-sys_poll-sys_socketcall

sys_poll-sys_socketcall-sys_poll-sys_clock_gettime

sys_poll-sys_clock_gettime-sys_clock_gettime-sys_clock_gettime

sys_clock_gettime-sys_clock_gettime-sys_socketcall-sys_clock_gettime

sys_socketcall-sys_clock_gettime-sys_poll-sys_poll

sys_poll-sys_poll

我使用“-”作为分隔符,将这些短语与新轨迹进行比较,因此我以“-”加入了唯一的系统调用。


问题答案:

似乎您想要的单词被空格分开了。在这种情况下,只需逐行阅读文件,然后使用即可获得所需的字词String.split(" ")。这是我可能想到的:

public class FileSplitter {

    public static void main(String[] args) throws IOException {
        File file = new File("input_file.txt");
        LinkedList<String> words = new LinkedList<String>();
        int i = 0;

        Files.lines(file.toPath()).
        forEachOrdered(line -> words.
                addAll(Arrays.asList(line.split(" "))));

        for(String word:words){
            if(word.trim().length() > 0){
                System.out.print(word.trim() + " ");
                if(i++ >= 3){
                    System.out.println();
                    i = 0;
                }
            }
        }
    }
}

对于您的示例,它返回以下内容:

sys_clock_gettime sys_poll sys_poll sys_clock_gettime 
sys_poll sys_poll sys_poll sys_clock_gettime 
sys_poll sys_clock_gettime sys_poll sys_poll 
sys_poll sys_poll sys_poll sys_poll
sys_poll sys_poll sys_socketcall


 类似资料:
  • 我需要从大文件中提取文本(最大限制50MB)文件可能是doc、ppt、xls、txt或pdf格式。到目前为止,我使用了ApachePOI'http://poi.apache.org/' 用于Microsoft Office文档和PDFBox从PDF中提取文本。然而,随着文件变大,提取过程变得缓慢,特别是以下文件。到目前为止我取得的成果: 1. PPTX-45MB-3分钟apx 2.PDF-62MB

  • 问题内容: 您能帮我找到一个包含短语列表的正则表达式,请检查给定文本中是否存在这些短语之一? 例: 如果我有以下话: 给定的文本是: 我想在执行正则表达式后得到: 我的初始代码: 问题答案: 是字符类,字符类只能匹配它指定的一个字符。例如,像字符类只能匹配OR OR 。因此,如果您只想查找单词,请不要将其括起来。 另一个问题是您用作单词分隔符,因此在下面的字符串中 正则表达式将无法首先匹配,因为

  • 问题内容: 假设您有一个像这样的文本文件:http : //www.gutenberg.org/files/17921/17921-8.txt 有没有人有一个好的算法或开放源代码从文本文件中提取单词?如何获得所有单词,同时避免使用特殊字符,并保留诸如“ it’s”之类的内容… 我在用Java工作。谢谢 问题答案: 这听起来像是正则表达式的正确工作。如果您不知道如何开始,以下是一些Java代码,可以

  • 我正在使用它从文本文件中提取结果: 文件中存储的数字存储为 他们被拉入名单 是不是我可以用matplotlib将这个列表转换成浮点来绘制?

  • 我有一个列表。pdf,ppt,pptx,xls,xlsx,doc和。docx文件,现在想在这些文件中查找电子邮件地址。我的问题是如何从这些文件中智能地提取计划文本。目前我正在使用Apache POI,我对每种类型的文件都有一个单一的方法,是否有一个更短、更优雅的位置来做这件事?也许还可以处理。ODT、.ODP、.ODS文件?如何从。pdf,ppt,pptx,xls,xlsx,doc和.docx文件

  • 问题内容: 为了在python中处理MS Word文件,有python win32扩展名,可以在Windows中使用。我该如何在linux中做同样的事情?有图书馆吗? 问题答案: 您可以对antiword进行子过程调用。Antiword是一个Linux命令行实用程序,用于从word doc中转储文本。适用于简单文档(显然会丢失格式)。它可以通过apt(可能是RPM)获得,也可以自己编译。