首先,對不起我的英語不好。Java在文本中搜索變量列表
我爲這個問題搜索了一下,但沒有關於它的好消息。
我擁有一個約300萬字的文本。我的需要是在本文中搜索單詞,我有一個所有這些單詞的列表,我需要在本文中找到相同的單詞,我希望同伴的幫助以獲得一個好主意。有意義的時間。
感謝您的幫助。
最好的問候。
首先,對不起我的英語不好。Java在文本中搜索變量列表
我爲這個問題搜索了一下,但沒有關於它的好消息。
我擁有一個約300萬字的文本。我的需要是在本文中搜索單詞,我有一個所有這些單詞的列表,我需要在本文中找到相同的單詞,我希望同伴的幫助以獲得一個好主意。有意義的時間。
感謝您的幫助。
最好的問候。
我已經在PHP中使用了Zend Framework的Lucene,但是在一個文本中進行一次搜索,是否可以使用BufferedReader加載的文本中的多個搜索?謝謝。 –
當然有可能:獲得一個想法看看這個例子http://javatechniques.com/blog/lucene-in-memory-text-search-example/ – David
再次感謝,我會用.txt測試這個例子文件作爲入口和一個ArrayList與單詞匹配。 –
這將是非常inneficient每次從文本文件搜索的文本。
如果內存是不是一個約束,你可以在ArrayList中添加的每個字,並通過
Collections.binarySearch() API
這也是一個好主意,將每個單詞加載到coolection並用二進制搜索,但我需要將單詞轉換爲二進制以匹配列表中的單詞,不是嗎?謝謝。 –
@Rodrigo法拉利:二進制搜索與二進制格式無關。這是一種有效的遞歸算法,可將收集和搜索分割爲越來越小的子集合。它在O(log(N))中找到一個元素而不是O(N),但需要對集合進行排序。 – Tudor
@Rodrigo法拉利。不需要。 U可以使用正常的字符串比較。正如Tudor所說,它是搜索排序項目的最有效方式。 –
如果你需要搜索的話只有一次,然後我認爲你不可能比僅僅對文本進行線性搜索做得更好。
如果你需要做幾次搜索,那麼你將需要索引你的文本,也許使用像Lucene的東西。
是的,我需要多次搜索文本,50.000次是在300萬字文本中的小搜索。謝謝。 –
你需要多次搜索單詞還是隻搜索一次? – Tudor
您是否需要查找特定單詞的所有實例,或者只需確定該單詞是否在文本中? – tobier
對不起,這篇文章中的數據越來越少,我需要在輸入文本中隨時搜索每個單詞。我正在通過BufferedReader加載的.txt來讀取這個輸入文本。提前致謝。 –