Как удалить эти стоп-слова наиболее эффективным способом. Приведенный ниже подход не удаляет временные слова. Что мне не хватает?Самый эффективный способ удаления стоп-слов в Java из массива строк
Есть ли другой способ сделать это?
Я хочу это сделать наиболее эффективным образом в Java.
public static HashSet<String> hs = new HashSet<String>();
public static String[] stopwords = {"a", "able", "about",
"across", "after", "all", "almost", "also", "am", "among", "an",
"and", "any", "are", "as", "at", "b", "be", "because", "been",
"but", "by", "c", "can", "cannot", "could", "d", "dear", "did",
"do", "does", "e", "either", "else", "ever", "every", "f", "for",
"from", "g", "get", "got", "h", "had", "has", "have", "he", "her",
"hers", "him", "his", "how", "however", "i", "if", "in", "into",
"is", "it", "its", "j", "just", "k", "l", "least", "let", "like",
"likely", "m", "may", "me", "might", "most", "must", "my",
"neither", "n", "no", "nor", "not", "o", "of", "off", "often",
"on", "only", "or", "other", "our", "own", "p", "q", "r", "rather",
"s", "said", "say", "says", "she", "should", "since", "so", "some",
"t", "than", "that", "the", "their", "them", "then", "there",
"these", "they", "this", "tis", "to", "too", "twas", "u", "us",
"v", "w", "wants", "was", "we", "were", "what", "when", "where",
"which", "while", "who", "whom", "why", "will", "with", "would",
"x", "y", "yet", "you", "your", "z"};
public StopWords()
{
int len= stopwords.length;
for(int i=0;i<len;i++)
{
hs.add(stopwords[i]);
}
System.out.println(hs);
}
public List<String> removedText(List<String> S)
{
Iterator<String> text = S.iterator();
while(text.hasNext())
{
String token = text.next();
if(hs.contains(token))
{
S.remove(text.next());
}
text = S.iterator();
}
return S;
}
выглядит хорошо для меня. насколько велик список S? если это особенно важно, решение может заключаться в том, чтобы не загружать слова в список для начала и выполнять обработку на уровне потока ввода/вывода. Но я бы это сделал, только если у вас была проблема с производительностью или памятью с текущей реализацией. – slipperyseal
вместо того, чтобы удалять строки из списка (вызывая внутреннюю копию), вы можете установить нули, где находятся стоп-слова. затем, когда вы выводите список, игнорируете нули или копируете список в конце и исключаете нули в этой точке. – slipperyseal
Это не удаление столов из списка. – Shorbhaja