宿題の割り当てについては、basicCompare
メソッドを2つのテキストドキュメントを比較し、それらが類似するトピックであるかどうかを確認することになります。基本的に、このプログラムは、5文字未満の単語すべてを取り除き、リストを残します。リストを比較し、2つのドキュメント間で十分に使用されている場合(80%の類似度としましょう)、メソッドはtrueを返し、「一致」を返します。似たような2つのリストがJavaでどのように見つかっていますか?
しかし、私はすべてのコメントがメソッドの最下部にあるところで立ち往生しています。私は、2つのリストを比較し、両方のリストに含まれる単語の割合を調べる方法を考えることも、見つけることもできません。たぶん私は間違っていると思っているし、両方のリストに含まれていない単語をフィルタリングして、どれくらいの単語が残っているかを数えておく必要があります。入力された文書が一致するかどうかを定義するためのパラメータは、私たち全員に任せられているので、設定することができます。親切な女性や紳士が正しい方向に私を向けることができれば、特定の機能に関するJavaのdocページでさえ、私は残りの部分を手に入れることができると確信しています。私はどこから始めるべきかを知る必要があります。
import java.util.Collections;
import java.util.List;
public class MyComparator implements DocumentComparator {
public static void main(String args[]){
MyComparator mc = new MyComparator();
if(mc.basicCompare("C:\\Users\\Quinncuatro\\Desktop\\MatchLabJava\\LabCode\\match1.txt", "C:\\Users\\Quinncuatro\\Desktop\\MatchLabJava\\LabCode\\match2.txt")){
System.out.println("match1.txt and match2.txt are similar!");
} else {
System.out.println("match1.txt and match2.txt are NOT similar!");
}
}
//In the basicCompare method, since the bottom returns false, it results in the else statement in the calling above, saying they're not similar
//Need to implement a thing that if so many of the words are shared, it returns as true
public boolean basicCompare(String f1, String f2) {
List<String> wordsFromFirstArticle = LabUtils.getWordsFromFile(f1);
List<String> wordsFromSecondArticle = LabUtils.getWordsFromFile(f2);
Collections.sort(wordsFromFirstArticle);
Collections.sort(wordsFromSecondArticle);//sort list alphabetically
for(String word : wordsFromFirstArticle){
System.out.println(word);
}
for(String word2 : wordsFromSecondArticle){
System.out.println(word2);
}
//Find a way to use common_words to strip out the "noise" in the two lists, so you're ONLY left with unique words
//Get rid of words not in both lists, if above a certain number, return true
//If word1 = word2 more than 80%, return true
//Then just write more whatever.basicCompare modules to compare 2 to 3, 1 to 3, 1 to no, 2 to no, and 3 to no
//Once you get it working, you don't need to print the words, just say whether or not they "match"
return false;
}
public boolean mapCompare(String f1, String f2) {
return false;
}
}
http://stackoverflow.com/questions/2762093/java-compare-two-lists –
コードを表示したにもかかわらず、問題の主要な肉*にあなたの努力を示すことができれば、それが最善です。その周りに足場のコードを提供するだけです。 – cctan