python spacy cümle ayırıcı
Sep 23 2020
spacyCümleleri bir metinden çıkarmak için kullanmak istiyorum .
nlp = English() # just the language with no model
sentencizer = nlp.create_pipe("sentencizer")
nlp.add_pipe(sentencizer)
doc = nlp("This is a sentence. This is another sentence.")
for sent in doc.sents:
print(sent.text)
Cümle bölücünün güvenilirliğini kuralları atlayarak artırmak mümkün mü, örneğin bir cümleyi asla "hayır" gibi bir kısaltmadan sonra bölmez.
Elbette çok teknik ve özel kısaltmalarım olduğunu hayal edin.
Nasıl ilerleyeceksiniz?
Yanıtlar
3 thorntonc Sep 23 2020 at 22:36
Kurala dayalı bir cümle bölme yaklaşımı kullanarak varsayılan davranışı değiştiren özel bir işlev yazabilirsiniz. Örneğin:
import spacy
text = "The formula is no. 45. This num. represents the chemical properties."
nlp = spacy.load("en_core_web_sm")
doc = nlp(text)
print("Before:", [sent.text for sent in doc.sents])
def set_custom_boundaries(doc):
pattern_a = ['no', 'num']
for token in doc[:-1]:
if token.text in pattern_a and doc[token.i + 1].text == '.':
doc[token.i + 2].is_sent_start = False
return doc
nlp.add_pipe(set_custom_boundaries, before="parser")
doc = nlp(text)
print("After:", [sent.text for sent in doc.sents])
Bu size istediğiniz cümle dağılımını verecektir.
Before: ['The formula is no.', '45.', 'This num.', 'represents the chemical properties.']
After: ['The formula is no. 45.', 'This num. represents the chemical properties.']
Gene Simmons, KISS Çizgi Romanlarının Potansiyel Olarak "İnsanlığı Yeniden Yaratabileceğini" Söyledi
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'