Cümleler içine bir Paragraf Nasıl Split

3 Cevap php

Ben kullanmaya çalışıyorum:

$string="The Dr. is here!!! I am glad I'm in the U.S.A. for the Dr. quality is great!!!!!!";
preg_match_all('~.*?[?.!]~s',$string,$sentences);
print_r($sentences);

Ama vb Dr, ABD'den, çalışmıyor

Herkes daha iyi bir öneriniz var mı?

3 Cevap

Bunun için herhangi bir basit bir çözüm yoktur. Eğer uygulamada bazı doğal dil işleme (NLP) yapmak ve her cümle tanımak gerekir. şey çağrı OpenNLP, bir JAVA tabanlı NLP çözümleyici aracı var. Veya Stanford NLP parser Ruby. Eğer php için böyle bir şey bulabilirsiniz.

here PHP doğal dil işleme için sınıfları bir dizi bulundu.

hmmm belki gibi bir şey denemek $sentences = preg_split('/.*?[?.!]+\s+/', $string);

Lütfen örnek açıkça gösterir bu yana neredeyse imkansız olduğunu, örneğin kullanılabilir noktalama karakterleri Dr, ABD, vb bir cümle / biter nerede başlar imkansız bilmek olun.

Sen yeni bir cümle (sonra başlar) Eğer söz vardır noktalama karakterleri aşağıdaki karar için aşağıdaki karakterleri aramak zorunda.