2

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

文件格式

\数据\

ngram 1=19

ngram 2=234

ngram 3=1013

\1克:

-1.7132 普鲁 -3.8008

-1.9782 饱和度 -3.8368

\2克:

-1.5403 达拉姆杜阿 -1.0560

-3.1626 达拉姆 0.0000

\3克:

-1.8726 itu dan tiga

-1.9654 itu dan untuk

\结尾\

正如您在示例文件中看到的,我有 19 行 1-gram、234 行 2-gram 和 1013 行 3-gram。我将行的字符串部分提供给程序并获取字符串左侧和右侧的数字。输入字符串可以帮助我知道我必须在文件的哪个部分进行搜索。我必须找到一种不完全读取文件的方法,因为我的文件非常大,读取整个文件需要很多时间。我认为不使用索引文件并访问整行就跳转到文件中的特定行是一个好方法。

如果你能帮助我完成我的任务,那就太好了。

4

1 回答 1

0

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

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

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

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

于 2011-02-26T15:21:03.513 回答