Я начинаю сайт, который будет захватывать много данных из API Twitter. Затем я хочу найти определенные фразы в твитах, которые я получаю от API. Мне интересно, какой лучший язык для этого. Большинство моих знаний в PHP, но из того, что я читал в прошлом, я больше склоняюсь к python. Как я уже говорил, я буду искать определенные фразы, поэтому я хотел бы использовать что-то похожее на функцию strpos PHP. Я ищу язык, который будет иметь самое быстрое время обработки. Я также буду делать много INSERT с этим кодом, но я полагаю, что обработка строк будет занимать большую часть времени, поэтому я сосредоточен на этом. Заранее благодарю за ваши ответы.Лучший язык для большого количества сопоставлений строк
ответ
Один из моих проектов урожаи твитов от многих разработчиков, а затем фильтры, корпус вниз только те твиты, имеющих отношение к технологии и разработки , Стоимость получения этих твитов из Twitter dwarfs время, затраченное на поиск строк.
Я говорю, что вы должны выбрать язык, который вам нравится (мое оружие выбора - C#), и убедитесь, что вы используете эффективный и подходящий алгоритм для вашего поиска. SEK опубликовала очень хорошую ссылку, чтобы вы начали ,
Дополнительную важность имеет хорошая стратегия обработки твитов, и именно здесь вас могут убить производительность Twitter. Для меня хорошо работает процесс (или процессы на нескольких компьютерах), который использует многопоточный асинхронный клиент для извлечения твитов и размещения их в хранилище данных для обработки. Ответственность за этот процесс заключается исключительно в том, чтобы как можно быстрее получать твиты из Twitter. Другой многопоточный сервисный процесс отвечает за проверку выбранных твитов для совпадений с моими целевыми фразами.
Ваша мысль, что сравнение строк займет больше всего времени, является правильным, однако производительность, вероятно, будет одинаковой для любого языка, который вы решите использовать. Таким образом, ваш лучший вариант - выбрать тот, с которым вам больше всего нравится. С другой стороны, изучение нового языка может только увеличить ваши знания, а синтаксис python сделает вас лучшим программистом.
В любом случае гораздо важнее использовать соответствующие алгоритмы для поиска и индексирования строк. Wikipedia имеет достойную статью, которая должна дать вам обзор различных алгоритмов. Из вашего описания это звучит так, как будто вам было бы лучше использовать конечный поиск набора шаблонов с предпочтением тех, которые препроцесс шаблонов, таких как Aho-Corasick.
Если ваш набор критериев поиска исправлен, 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. Преобразование большого количества строк
- 3. Обновление Sql большого количества строк
- 4. Лучший способ обработки большого количества текста
- 5. Схема данных для хранения большого количества строк
- 6. дизайн таблицы для хранения большого количества строк
- 7. Варианты дизайна стола для большого количества строк?
- 8. Рисунок большого количества строк .net
- 9. MySQL большого количества строк запрос
- 10. Лучший подход для отображения большого количества данных «сетки» в Android
- 11. Лучший способ хранения большого количества данных?
- 12. Обработка большого количества строк с щелчком
- 13. Лучший способ обработки большого количества постоянных данных
- 14. Watchkit: лучший способ отображения большого количества данных
- 15. OpenLayers - лучший способ отображения большого количества данных?
- 16. Лучший способ хранения большого количества данных
- 17. Удаление большого количества строк в кусках
- 18. Лучший способ обработки большого количества ints
- 19. Лучший способ отображения большого количества текста?
- 20. Лучший инструмент для управления версиями для большого количества небольших файлов
- 21. Лучший способ хранения большого количества datarow для запросов
- 22. Удаление большого количества строк из огромного списка
- 23. async.parallel для большого количества функций
- 24. Сортировка и хэширование большого количества строк Java
- 25. Добавление большого количества строк в MFC Combobox
- 26. Копирование, вставка большого количества строк в таблицу
- 27. Обработка большого количества строк фрагментированное/небуферизован
- 28. выбор большого количества (конкретных) строк в файле
- 29. Удаление большого количества строк из таблицы
- 30. Удаление большого количества строк без блокировки их
C++, C или ASM? –