Yalnızca büyük harfle yazılmış cümleler içeren bir veri tabanım var. Veri tabanı tıbbi terimler içeren tekniktir ve onu normalleştirmek istiyorum ki, kapitalizasyon kullanıcının beklediği kadar yakındır. Bunu başarmanın en iyi yolu nedir? Sürecine yardımcı olmak için kullanabileceğim özgür bir veri kümesi var mı? truecasing üzerine çalışmaları içinSözcük için doğru büyük harf kullanımını nasıl en iyi şekilde belirlerim?
cevap
Arama: http://en.wikipedia.org/wiki/Truecasing
Bu normal harf ile benzer tıbbi verilere erişim varsa kendi veri kümesi oluşturmak gerçekten çok kolay olurdu. Her şeyi genişletin ve algoritmanızı eğitmek/test etmek için haritayı orijinal metne kullanın.
bir yolu Python Doğal Dil Toolkit (NLTK) kullanılarak örneğin POS etiketleme gelen harf anlaması için olabilir: Bilmiyorum, özellikle çünkü
import nltk, re
def truecase(text):
truecased_sents = [] # list of truecased sentences
# apply POS-tagging
tagged_sent = nltk.pos_tag([word.lower() for word in nltk.word_tokenize(text)])
# infer capitalization from POS-tags
normalized_sent = [w.capitalize() if t in ["NN","NNS"] else w for (w,t) in tagged_sent]
# capitalize first word in sentence
normalized_sent[0] = normalized_sent[0].capitalize()
# use regular expression to get punctuation right
pretty_string = re.sub(" (?=[\.,'!?:;])", "", ' '.join(normalized_sent))
return pretty_string
Bu mükemmel olmayacak ne senin veri exactely gibi görünüyor ama belki fikir edinebilirsiniz: bunu yapmak için
>>> text = "Clonazepam Has Been Approved As An Anticonvulsant To Be Manufactured In 0.5mg, 1mg And 2mg Tablets. It Is The Generic Equivalent Of Roche Laboratories' Klonopin."
>>> truecase(text)
"Clonazepam has been approved as an anticonvulsant to be manufactured in 0.5mg, 1mg and 2mg Tablets. It is the generic Equivalent of Roche Laboratories' Klonopin."
mükemmel çözüm. Bu api'yi de ilginç bulabilirsiniz. [Textacy] (https://pypi.python.org/pypi/textacy) – Pramit
En kolay yolu ngrams dayalı bir yazım düzeltme algoritması kullanmaktır.
Örneğin, LingPipe SpellChecker kullanabilirsiniz. Durumun tahmin edilmesi için yapılabileceklere benzer şekilde, sözcükleri boşluklarda tahmin etmek için kaynak kodu bulabilirsiniz.
tıbbi terimler zor olacaktır. –
Bu, dile özgü, btw. Verileriniz İngilizce mi? –
@Alex Yep, tüm ingilizce. – Mike