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 ダラム ini 0.0000

\3 グラム:

-1.8726 イット・ダン・ティガ

-1.9654 イトゥ・ダン・ウントゥク

\終わり\

サンプル ファイルでわかるように、1 グラムが 19 行、2 グラムが 234 行、3 グラムが 1013 行あります。行の文字列部分をプログラムに渡し、文字列の左側と右側にある数字を取得します。入力文字列は、ファイルのどの部分を検索する必要があるかを知るのに役立ちます。ファイルが非常に大きく、ファイル全体を読み取るには時間がかかるため、ファイルを完全に読み取らない方法を見つける必要があります。インデックスファイルを使わずにファイル内の特定の行にジャンプして行全体にアクセスするのは良い方法だと思います。

あなたが私の任務を遂行するのを手伝ってくれるなら、それは素晴らしいことです。

4

1 に答える 1

0

ARPAファイルが何かわかりません。テキストを含む何らかのファイルだと思います。

あなたがしたいことは、最初にファイルにインデックスを付けて、ファイル内の行番号を文字列に関連付けることができるようにすることです。

これは大きなファイルなので、おそらくインデックスを別のファイルに保存します。

まず、ユーザーが検索する前に、インデックスを実行します。次に、ユーザーが探している文字列が見つかった行番号をインデックスで検索します。

于 2011-02-26T15:21:03.513 に答える