我有一個數據庫包含只包含大寫字母的句子。該數據庫是技術性的,包含醫療術語,我想對其進行標準化,以使大寫字母(接近)符合用戶的期望。達到此目的的最佳方法是什麼?是否有免費的數據集供我用來幫助這個過程?如何才能最好地確定單詞的正確大小寫?
8
A
回答
4
搜尋工作在truecasing:http://en.wikipedia.org/wiki/Truecasing
這將是很容易產生,如果你有正常的市值獲得類似的醫療數據自己的數據集。利用一切資源並使用映射到原始文本來訓練/測試您的算法。
7
的一種方法是使用Python自然語言工具包(NLTK)來推斷從POS標記大寫,例如:
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
這不會是完美的,尤其是因爲我不知道你是什麼數據完全看起來像,但也許你可以得到這樣的想法:
>>> 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."
+0
偉大的解決方案。你也可能會發現這個api很有趣。 [textacy](https://pypi.python.org/pypi/textacy) – Pramit
2
最簡單的方法是使用基於ngrams的拼寫校正算法。
您可以使用,例如LingPipe SpellChecker。您可以找到用於預測單詞空格的源代碼,類似於可以預測大小寫的操作。
相關問題
- 1. 如何才能最好地編寫sql語句來正確檢查值?
- 2. capitalizedString不正確地大寫正確的單詞開頭的數字?
- 3. 如何確定SharePoint網站的正確(區分大小寫)URL
- 4. JSON文件正確的大小寫和單詞間距
- 5. 如何在.NET中正確地使用大寫的希臘詞?
- 6. 優化PHP代碼(試圖確定最小/最大/大小寫)
- 7. Flex如何區分大寫單詞,小寫單詞和單詞?
- 8. VBA轉換爲正確的大小寫跳過某些詞
- 9. 如何確定正確的xml寫出
- 10. 如何在保持正確大小寫的同時有效地替換句子中的某些單詞?
- 11. 句柄大小寫或文本框中的正確大小寫
- 12. 如何確定Android的正確字體大小?
- 13. 如何確定正確的緩衝區大小SQLBindCol
- 14. 確定操作欄菜單中圖標的正確大小
- 15. 名稱正確的大小寫
- 16. GridPanel如何確定大小?
- 17. 確定當地最小值後的局部最大值
- 18. 如何確定postgresql中的特徵是大寫還是小寫?
- 19. 確定Android OpenGLES中的最大/最小紋理大小限制
- 20. 爲什麼只有主內存大小才能確定頁表項的大小?
- 21. 輸出正確的單詞
- 22. 如何確定MySQL中的最大事務大小?
- 23. 如何確定SOAP消息的最大大小?
- 24. 如何確定3個整數的最大值和最小值
- 25. 單詞不能正確破解
- 26. 如何最好地選擇正確的元素(Python 3,Selenium)
- 27. 如何做一個mysql列的'正確的大小寫'格式?
- 28. 如何確定密鑰列中的正最小值或負值最大值?
- 29. 我怎樣才能確定最大行大小,只是從列數據類型的大小?
- 30. AbsoluteLayout邊界不能正確定位大小大於50的
醫學術語將是艱難的。 –
這是特定語言,順便說一句。你的數據是英文嗎? –
@Alex Yep,全英文。 – Mike