我有一个数据库包含只包含大写字母的句子。该数据库是技术性的,包含医疗术语,我想对其进行标准化,以使大写字母(接近)符合用户的期望。达到此目的的最佳方法是什么?是否有免费的数据集供我用来帮助这个过程?如何才能最好地确定单词的正确大小写?
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. 优化PHP代码(试图确定最小/最大/大小写)
- 6. Flex如何区分大写单词,小写单词和单词?
- 7. VBA转换为正确的大小写跳过某些词
- 8. 如何确定正确的xml写出
- 9. 句柄大小写或文本框中的正确大小写
- 10. 确定当地最小值后的局部最大值
- 11. 确定Android OpenGLES中的最大/最小纹理大小限制
- 12. 输出正确的单词
- 13. 单词不能正确破解
- 14. 如何确定SOAP消息的最大大小?
- 15. 如何确定MySQL中的最大事务大小?
- 16. 如何确定3个整数的最大值和最小值
- 17. 如何做一个mysql列的'正确的大小写'格式?
- 18. AbsoluteLayout边界不能正确定位大小大于50的
- 19. 我怎样才能确定最大行大小,只是从列数据类型的大小?
- 20. 如何最好地选择正确的元素(Python 3,Selenium)
- 21. 如何确定密钥列中的正最小值或负值最大值?
- 22. 如何告诉Rails如何正确地使首字母大写?
- 23. 如何获取路径的正确大小写?
- 24. 如何从Photoshop中将正确的字体大小写入iOS
- 25. 如何编写正确的AND功能?
- 26. 需要更好地理解如何确定Flex/Spark UI元素的大小
- 27. 如何才能让Talend过程正确地捕获SIGINT?
- 28. UIScrollView不能正确调整大小
- 29. 何处确定UIView大小
- 30. 如何正确调整svg大小?
医学术语将是艰难的。 –
这是特定语言,顺便说一句。你的数据是英文吗? –
@Alex Yep,全英文。 – Mike