我開始一個網站,它將從Twitter API中獲取大量數據。然後,我想在API中獲得的推文中查找特定的短語。我想知道最好的語言是什麼。我的大部分知識都在PHP中,但從我過去閱讀的內容來看,我更傾向於使用Python。就像我之前說過的那樣,我會尋找特定的短語,所以我想使用類似PHP的strpos函數。我正在尋找一種處理速度最快的語言。我也會用這段代碼做很多INSERT,但我認爲字符串處理將會佔用大部分時間,所以我將重點放在這個上。預先感謝您的答案。大量字符串比較的最佳語言
1
A
回答
1
我的一個項目中收穫的鳴叫,然後將篩選語料庫下降到僅相關的技術和發展的鳴叫。從Twitter獲取這些推文的成本矮人搜索字符串所花費的時間。我說你應該選擇一種你喜歡的語言(我選擇的武器是C#),並確保你使用了一種高效和適當的算法來執行你的搜索 - SEK發佈了一個非常好的鏈接,讓你開始。
更重要的是有一個好的策略來處理推文,這是你可以通過Twitter的性能被殺死的地方。對我而言,最好的方法是在多臺機器上創建一個進程(或多個進程),它使用多線程異步客戶機來獲取推文並將其放入數據存儲中進行處理。這個過程完全是責任,儘快從Twitter獲取推文。另一個多線程服務進程負責檢查獲取的推文是否與我的目標短語匹配。
1
你認爲字符串比較會花費最多時間是正確的,但無論您選擇哪種語言,性能都可能相同。所以你最好的選擇是選擇你最喜歡的那個。另一方面,學習一門新語言只會增加你的知識,Python的語法會使你成爲一個更好的程序員。
在任何情況下,使用適當的算法進行字符串搜索和索引是非常重要的。 Wikipedia有一個體面的文章,應該給你一個各種算法的概述。從您的描述中,聽起來好像您最好使用有限模式集搜索,並且優先考慮對模式進行預處理的搜索,例如Aho-Corasick。
3
如果您的搜索字詞集是固定的,the esmre library for Python可能正是您所需要的。它使用Aho-Corasick對大型搜索項進行快速子字符串匹配。
下面是一個使用esmre找到一個例子提到了一些編程語言:從許多開發商
import esm
tweets = """
I've always loved Python.
C# is better than I thought. It's like Java done right.
My tiny mind cannot grasp Haskell.
Objective-C is like C and Smalltalk's illegitimate lovechild.
""".strip().split('\n')
search_terms = ["Python", "Ruby", "PHP", "Erlang", "Haskell", "OCaml",
"Objective-C", "C#", "C++", "Common Lisp", "Scheme", "Java", "Smalltalk",
" C "
]
# Build the index of search terms
index = esm.Index()
for term in search_terms:
index.enter("%s" % term.lower(), term)
index.fix()
# Find mentions of the search terms
for tweet in tweets:
matches = index.query(tweet.lower())
languages = [label for (position, label) in matches]
print "%r mentions %r" % (tweet, languages)
相關問題
- 1. 比較兩種語言字符串
- 2. 最佳(HEX)字符串比較方法
- 3. c#比較不同語言的字符串
- 4. 在C編程語言中比較鏈表中的字符串
- 5. 比較和排序多種語言的字符串
- 6. 如何比較GWT中的語言環境字符串?
- 7. Fluent斷言比較字符串Guid
- 8. NUnit斷言AreEqual字符串比較
- 9. Ruby最小和最大比較字符串的方法?
- 10. 表達式語言中的字符串比較是否區分大小寫?
- 11. 返回給定字符串的語言的最佳方法
- 12. 什麼是比較字符串的最佳選擇?
- 13. 創建字符串過濾器比較的最佳方法?
- 14. Java從2個列表比較字符串的最佳方法
- 15. 將字符串變量與一組字符串常量進行比較的最佳方法是什麼?
- 16. 存儲多語言字符串的最佳實踐
- 17. 比較字符串和布爾表達式語言
- 18. 比較字符串與多個字符串(最佳數據結構)
- 19. java語言中的更大字符串
- 20. 比較C語言中的Unicode字符串比C#返回不同的值
- 21. 比較makefile中的字符串變量
- 22. jQuery的字符串比較變量
- 23. 字符/字符串比較
- 24. 字符串字符比較
- 25. 使用if語句比較字符串
- 26. Excel if語句比較字符串值
- 27. java if語句字符串比較
- 28. 在if語句中比較字符串
- 29. 字符串比較if&else語句
- 30. 字符串比較和if語句
C++,C還是ASM? – 2011-01-28 13:48:55