0

比較して 0 と 1 の間の数値を返す 2 つの文を含むファイルを読み込む必要があります。文がまったく同じ場合は true の場合は 1 を返し、完全に反対の場合は false の場合は 0 を返す必要があります。文が似ているが、単語が同義語またはそれに近いものに変更されている場合、.25 .5 または .75 が返されます。テキスト ファイルは次のようにフォーマットされます。

______________________________________
テキスト: サンプル

テキスト 1: 暗く嵐の夜でした。私は一人で赤い椅子に座っていました。私は3匹の猫を飼っていたので、完全に一人ではありませんでした。

テキスト 20: 暗く嵐の夜でした。私は真っ赤な椅子に一人で座っていました。私は3匹の猫を飼っていたので、完全に一人ではありませんでした
// ハイポイントを獲得する必要がありますが、1 ではありません

テキスト 21: 暗くて嵐のような夜でした。私は真っ赤なカテドラに一人で座っていました。私は3匹の猫を飼っていたので、完全に一人ではありませんでした
// text20 より低いスコアにする必要があります

テキスト 22: 私は真っ赤な大聖堂に一人で座っていました。私は3匹の猫を飼っていたので、完全に一人ではありませんでした。暗くて嵐のような夜でした。
// スコアは text21 より低くなければなりませんが、0 ではありません

テキスト 24: 暗い嵐の夜でした。私は一人ではありませんでした。私は赤い椅子に座っていませんでした。私は3匹の猫を飼っていました。
// スコアは 0 でなければなりません!
________________________________________________

私はファイル リーダーを持っていますが、各行を比較できるように保存する最善の方法がわかりません。今のところ、ファイルを読み取ってから画面に出力しています。これらを保存し、それらを比較して目的の数を取得する最良の方法は何ですか?

import java.io.*;

public class implement 
{


    public static void main(String[] args)
    {
        try
        {
            FileInputStream fstream = new FileInputStream("textfile.txt");

            DataInputStream in = new  DataInputStream (fstream);
            BufferedReader br = new BufferedReader (new InputStreamReader(in));
            String strLine;

            while ((strLine = br.readLine()) != null)
            {
                System.out.println (strLine);
            }

            in.close();
        }

        catch (Exception e)
        {
            System.err.println("Error: " + e.getMessage());
        }

    }

}
4

1 に答える 1

1

それらを配列リストに保存します。

ArrayList list = new ArrayList();
//Read File
//While loop
list.add(strLine)

文の各変数を確認するには、句読点を削除してスペースで区切り、比較する文の各単語を検索します。単語または 2 ~ 3 文字を無視することをお勧めします。それはあなたの余談次第です

次に、行を配列に保存し、必要に応じて比較します。類似した単語を比較するには、単語を効率的にチェックするためのデータベースが必要です。別名ハッシュテーブル。これがあれば、データベース内の単語を半速で検索できます。次に、この作品のハッシュ テーブルには、類似した単語の各単語にリンクされたシソーラスが必要です。次に、各文のキーワードに類似した単語を取得し、比較している文でこれらの単語を検索します。明らかに、類似した単語を検索する前に、2 つの実際の文を比較する必要があります。最終的には、高度なデータ構造が必要になり、直接比較以上のことを行うために自分で構築する必要があります。

于 2012-04-27T14:17:05.327 に答える