2011-06-27 17 views
2

PHPを使用して文字列をぎこちないものとして検証する最適な方法は何ですか?PHPでテキストの妥当性を検証する方法はありますか?

たとえば、ユーザーから250文字以上の文字列を入力すると、正式なテキスト(実際の単語など)が入力されたかどうか、または最小文字数に丁寧に解釈されます(例: asdlfkjefksjlfkjldskfjelkef)?

私は単語の数を1つのオプションとして数えることを考えましたが、ユーザーはまだ不器用な部分(例:asdlf kjef ksjlf kjl dskfje lkef)を取り除くことができます。

文字列の半分以上に実際の辞書単語などが含まれていることを確認する方法はありますか?

この問題の最適な解決策は何ですか?

ありがとうございました。

+0

そのようなものは、予想される自然言語に依存しています。「ばかげた」というのは、単に「あなたが期待していた言語ではない」ということかもしれません。それ以外は、辞書のアプローチは実行可能なように聞こえる。 – Piskvor

+1

これは難しい問題ですが、ここにはマルコフチェーンのPHP実装があります:http://stackoverflow.com/questions/4672822/how-to-test-if-a-string-contains-gibberish-in-php – Ross

+0

何をデータのタイプは、あなたが検証しようとしているものですか?どのくらいのテキストが入力されますか?パラグラフかエッセイか? – Spudley

答えて

1

あなたはあなたがあなたの辞書を歩くと、ユーザの入力からすべての辞書の単語を削除してから、あなたはMarkov Chainsで見ることができる残り

1

を試みることができます。このアルゴリズムは、文字列が一緒に属しているかのように見えるかどうかを判断するだけです。それは必ずしもあなたにそれが不器用ではないと言うわけではありませんが、それは "ksjhglah etc"のようなものをキャッチする必要があります。

はあなたがColorless green ideas sleep furiouslyので、適切にそれを行うことはできませんMarkov text generators

4

を参照してください。

+0

まあ、文法上の正当性は十分ですか? – Piskvor

+0

@Piskvor OPは言っていない。私は意味論的なレベルまで「不器用」と思っていますし、マルコフ連鎖があなたに確率評価を与えることはできますが、それは難しいです。私はWebappのためにそれを実装することがその努力を正当化する方法を見ていません。私はたぶん「適切に」を「合理的な努力の中で」置き換えることができます。 – Gordon

関連する問題