2010-07-19 46 views
2

我有文本文件。在這我想刪除重複的單詞。我的文本文件包含像如何使用java刪除重複的單詞

我刪除重複的單詞。但是結束'ப்','த்'的單詞被認爲是單獨的單詞,不能作爲重複單詞去除。如果我刪除'ப்','த்',它會從其他字詞中刪除,如பாப்பா,சத்தம்。請提前使用java.Thanks提出解決此問題的任何想法。

+0

我能得到它的權利,(至少),有時話結束於「ப்」和「த்」相等? – 2010-07-19 09:32:09

回答

3

我想我會用一個自定義comperator一個集(如TreeSet)。這樣你可以任何你喜歡的方式定義等於。

1

使用掃描儀中的每一行作爲一個字符串進行掃描成一組,然後寫入字符串在集合到一個文件中。

1

首先,你應該解釋一下你如何解析您的文件,因爲它似乎是你的tokenization沒有適當工作。然後,在我看來,明顯的建議,爲unduplication查詢是使用Set(甚至TreeSet),這要根據給定的規則contains確保您的元素的唯一性。

2

我不明白給定的語言(谷歌翻譯的猜測是泰米爾語),但是從我讀到的問題來看,對於用該語言編寫的單詞來說,「平等」有特殊的規則 - 就像文字可以相等他們的寫法不同(例如結尾不同)。

所以,你可能想包裝包含特殊對象的語言,你可以定義自定義的詞串「等於」方法,就像這樣:

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。因此,如果我們有字abcdabcD這是在寫作不同,但據認爲是平等的規則,只有其中的一個將被添加到組。

+0

我不知道泰米爾人是不是......但是,也許表演某種詞幹?類似英語:已播放,正在播放將所有地圖播放到播放或類似的東西。 – 2010-07-19 12:27:38

0

我的方式來解決這個問題:通過詞

讀單詞,把它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 
    } 
} 
相關問題