Twitter APIから多くのデータを取得するウェブサイトを開始しています。私は、APIから得たつぶやきの特定のフレーズを探したいと思っています。私はこのために最高の言語が何かを考えています。私の知識の大部分はPHPにありますが、私が過去に読んだことから、私はPythonにもっと傾いています。私が前に言ったように、特定のフレーズを探しているので、PHPのstrpos関数に似たものを使いたいと思っています。私は最速の処理時間を持つ言語を探しています。私もこのコードで多くのINSERTをやっていますが、文字列の処理が大部分を占めることになるので、私はそれに焦点を当てています。あなたの答えに事前に感謝します。多数の文字列比較に最適な言語
答えて
一つの収穫のツイートを多くの開発者から、その後、技術開発に関連するものだけツイートまでそのコーパスをフィルタリング。 Twitterからこれらのつぶやきを取り出すコストは、の矮星の文字列を検索するのにかかる時間です。
あなたが楽しむ言語を選択する必要があります(私の武器は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. 2つの言語文字列を比較
- 3. R言語で文字列比較が遅すぎる
- 4. Android文字列リソースの多言語
- 5. 2文字列を比較制御文字までの最初の単語リスト
- 6. 文字列内にアルファベット文字(多言語)のみを残す
- 7. mysqlの文字列関数を単語で比較する
- 8. 文字列比較
- 9. 比較文字列
- 10. 中国語または日本語の文字列の比較
- 11. Javaコンパレータ、文字列を単語数で比較する
- 12. Jstringの比較in.c言語
- 13. 文字列の最初のカップルの文字を比較
- 14. コマンドライン文字列変数の比較
- 15. 文字列と数値の比較 - Python
- 16. Cの文字列比較関数
- 17. 複数値の文字列比較python
- 18. javascript - 文字列と数値の比較
- 19. Swift:文字列の最初の文字を比較する
- 20. アンドロイドの2つの文字列を最適化と比較するには?
- 21. Python:単語と単語の比較:最初と最後の文字(アルファベット順)
- 22. 文字列の比較 - Java
- 23. Pythonの文字列比較
- 24. PHPの文字列比較
- 25. 文字列/パスの比較
- 26. PHPの文字列比較
- 27. DateTime、文字列の比較
- 28. Python文字列の比較
- 29. Java:文字列の比較
- 30. Javaの文字列比較
C++、C、またはASM? –