私は、再発する文字シーケンスを識別するための効率的なアルゴリズムを見つけようとしています。シーケンスが3文字以上であり、最大長シーケンスだけを返すとします。データセットは、潜在的に何千もの文字になる可能性があります。また、私は、それが繰り返されるならば、シーケンスについて知りたいだけです、言い換えれば、3回。例として繰り返しのイベントシーケンスを見つける方法
: ASHEKBSHEKCSHEDSHEK
"蒋介石" は3回発生し、同定されるであろう。 「SHE」は4回生じるが、「SHEK」はその配列を含む最大長配列であるため、同定されない。
また、「シード」シーケンスはアルゴリズムに供給されず、自律的にそれらを見つける必要があります。あなたは合計(N)/ 2可能な出発文字列が\存在することを考える場合には、事前に
おかげで、 J
私の答えの一部ではありませんが、SWIGを見て、あなたの内部ループの仕事をC++にコンパイルすることをお勧めしますか?私は以前はNLP/Machine Learningに取り組んできましたが、もし私がコアアルゴリズムをC++に入れて、計算サーバ/ Hadoopクラスタ上のJVMにそれらをリンクさせるのであれば、しかし、ちょっと考えましたが... – Sam