Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/337.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用java在很短的时间内搜索一个很大的ARPA文件_Java_N Gram_Language Model - Fatal编程技术网

用java在很短的时间内搜索一个很大的ARPA文件

用java在很短的时间内搜索一个很大的ARPA文件,java,n-gram,language-model,Java,N Gram,Language Model,我有一个ARPA文件,几乎是1GB。我必须在不到一分钟的时间内完成搜索。我找了很多,但还没有找到合适的答案。我想我不必看整个文件。我只需要跳转到文件中的某一行并阅读整行内容。ARPA文件的行不具有相同的长度。我必须提到ARPA文件有一种特定的格式 文件格式 正如您在示例文件中看到的,我有19行1克、234行2克和1013行3克。我给程序一行的字符串部分,然后得到字符串左边和右边的数字。输入字符串可以帮助我知道我必须在文件的哪个部分进行搜索。我必须找到一种不完全读取文件的方法,因为我的文件很大,读

我有一个ARPA文件,几乎是1GB。我必须在不到一分钟的时间内完成搜索。我找了很多,但还没有找到合适的答案。我想我不必看整个文件。我只需要跳转到文件中的某一行并阅读整行内容。ARPA文件的行不具有相同的长度。我必须提到ARPA文件有一种特定的格式

文件格式 正如您在示例文件中看到的,我有19行1克、234行2克和1013行3克。我给程序一行的字符串部分,然后得到字符串左边和右边的数字。输入字符串可以帮助我知道我必须在文件的哪个部分进行搜索。我必须找到一种不完全读取文件的方法,因为我的文件很大,读取整个文件需要很多时间。我认为这是一种跳转到文件中特定行的好方法,而无需使用索引文件和访问整行


如果你能帮我完成作业,那就太好了。

我不知道ARPA文件是什么。我假设它是某种包含文本的文件

您要做的是首先为文件编制索引,以便将文件中的行号与字符串相关联

这是一个大文件,所以您可能会将索引存储在单独的文件中


首先,在用户搜索之前,运行索引。然后在索引中搜索行号,在其中找到用户要查找的字符串

我不知道什么是ARPA文件。我假设它是某种包含文本的文件

您要做的是首先为文件编制索引,以便将文件中的行号与字符串相关联

这是一个大文件,所以您可能会将索引存储在单独的文件中


首先,在用户搜索之前,运行索引。然后在索引中搜索行号,在其中找到用户要查找的字符串

非常感谢您的回复。我确信我不必为我的文件编制索引,因为这需要很多时间。我的讲师说我必须用另一种方法在短时间内搜索它。此外,ARPA文件类似于文本文件,但它的不同部分具有不同长度的行。在文件的开头,每个部分都指定了若干行。除非您告诉我们您要搜索的内容和基本文件格式,否则我们不能真正告诉您任何内容,只能使用BufferedReader并在循环中调用.ReadLine,然后检查当前行是否符合您的条件。@sepanta:讲师?如果这是作业,请贴上这样的标签。谢谢你的回复。我确信我不必为我的文件编制索引,因为这需要很多时间。我的讲师说我必须用另一种方法在短时间内搜索它。此外,ARPA文件类似于文本文件,但它的不同部分具有不同长度的行。在文件的开头,每个部分都指定了若干行。除非您告诉我们您要搜索的内容和基本文件格式,否则我们不能真正告诉您任何内容,只能使用BufferedReader并在循环中调用.ReadLine,然后检查当前行是否符合您的条件。@sepanta:讲师?如果这是家庭作业,请将其标记为家庭作业。您能给我们提供有关文件格式的详细信息吗?可能有办法做到这一点,但这取决于文件的结构。你能告诉我们格式吗?所以你一次也读不完整个文件来创建索引1GB不是那么大吗?在不扫描整个文件的情况下,无法访问文本文件中的特定行。您需要告知您正在搜索的内容类型,否则我们将无能为力。你的输入参数是什么?如果您正在搜索的只是任意文本,那么就不可避免地要浏览整个文件。您能告诉我们有关文件格式的具体细节吗?可能有办法做到这一点,但这取决于文件的结构。你能告诉我们格式吗?所以你一次也读不完整个文件来创建索引1GB不是那么大吗?在不扫描整个文件的情况下,无法访问文本文件中的特定行。您需要告知您正在搜索的内容类型,否则我们将无能为力。你的输入参数是什么?如果搜索的只是任意文本,那么就无法避免遍历整个文件。 \data\ ngram 1=19 ngram 2=234 ngram 3=1013 \1-grams: -1.7132 puluh -3.8008 -1.9782 satu -3.8368 \2-grams: -1.5403 dalam dua -1.0560 -3.1626 dalam ini 0.0000 \3-grams: -1.8726 itu dan tiga -1.9654 itu dan untuk \end\