我有文本文件。在这我想删除重复的单词。我的文本文件包含像如何使用java删除重复的单词
我删除重复的单词。但是结束'ப்','த்'的单词被认为是单独的单词,不能作为重复单词去除。如果我删除'ப்','த்',它会从其他字词中删除,如பாப்பா,சத்தம்。请提前使用java.Thanks提出解决此问题的任何想法。
我有文本文件。在这我想删除重复的单词。我的文本文件包含像如何使用java删除重复的单词
我删除重复的单词。但是结束'ப்','த்'的单词被认为是单独的单词,不能作为重复单词去除。如果我删除'ப்','த்',它会从其他字词中删除,如பாப்பா,சத்தம்。请提前使用java.Thanks提出解决此问题的任何想法。
我想我会用一个自定义comperator一个集(如TreeSet)。这样你可以任何你喜欢的方式定义等于。
使用扫描仪中的每一行作为一个字符串进行扫描成一组,然后写入字符串在集合到一个文件中。
首先,你应该解释一下你如何解析您的文件,因为它似乎是你的tokenization没有适当工作。然后,在我看来,明显的建议,为unduplication查询是使用Set(甚至TreeSet),这要根据给定的规则contains确保您的元素的唯一性。
我不明白给定的语言(谷歌翻译的猜测是泰米尔语),但是从我读到的问题来看,对于用该语言编写的单词来说,“平等”有特殊的规则 - 就像文字可以相等他们的写法不同(例如结尾不同)。
所以,你可能想包装包含特殊对象的语言,你可以定义自定义的词串“等于”方法,就像这样:
public class TamilWord {
String writtenWord = null;
public TamilWord(String writtenWord) {
this.writtenWord = writtenWord;
}
public String getWrittenWord() {
return writtenWord;
}
@Overwrite
public boolean equals(Object other) {
// Define your custom rules here, so that two words that
// are written differently may be considered as equal
}
}
然后你就可以对所有分析创建TamilWord
对象串并将它们放入 a Set
。因此,如果我们有字abcd
和abcD
这是在写作不同,但据认为是平等的规则,只有其中的一个将被添加到组。
我不知道泰米尔人是不是......但是,也许表演某种词干?类似英语:已播放,正在播放将所有地图播放到播放或类似的东西。 – 2010-07-19 12:27:38
我的方式来解决这个问题:通过词
读单词,把它java.util.Set<TheWord>
。最后,你将有没有重复的设置。你也应该定义TheWord
类:
class TheWord {
String word;
public TheWord() {}
public String getWord() {
return word;
}
public void setWord(String word) {
this.word = word;
}
public boolean equals(TheWord o) {
// put here your specific way to compare words
// taking into account your language rules and considerations
}
}
我能得到它的权利,(至少),有时话结束于“ப்”和“த்”相等? – 2010-07-19 09:32:09