Tôi có một cơ sở dữ liệu chứa các câu chỉ chứa các chữ cái viết hoa. Cơ sở dữ liệu là kỹ thuật, có chứa thuật ngữ y tế và tôi muốn bình thường hóa nó để viết hoa là (gần) những gì người dùng mong đợi. cách tốt nhất để đạt được điều này là gì? Có sẵn một tập dữ liệu tự do có sẵn để trợ giúp quá trình này không?Làm cách nào để xác định chính xác cách viết hoa chính xác cho một từ?
Trả lời
Tìm kiếm công việc trên truecasing: http://en.wikipedia.org/wiki/Truecasing
Nó sẽ thực sự dễ dàng để tạo ra dữ liệu của bạn được thiết lập nếu bạn có quyền truy cập vào dữ liệu y tế tương tự với vốn hóa bình thường. Tận dụng mọi thứ và sử dụng ánh xạ tới văn bản gốc để đào tạo/kiểm tra thuật toán của bạn.
Một cách có thể để suy ra giá trị vốn từ POS-tagging, ví dụ bằng cách sử dụng Python Ngôn ngữ tự nhiên Toolkit (NLTK):
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
này sẽ không được hoàn hảo, đặc biệt là bởi vì tôi không biết những gì bạn dữ liệu chính xác trông giống như, nhưng có thể bạn có thể có được ý tưởng:
>>> 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."
giải pháp tuyệt vời. Bạn có thể tìm thấy api này thú vị là tốt. [textacy] (https://pypi.python.org/pypi/textacy) – Pramit
Cách dễ nhất để làm điều này là sử dụng thuật toán sửa lỗi chính tả dựa trên ngram.
Bạn có thể sử dụng, ví dụ: LingPipe SpellChecker. Bạn có thể tìm mã nguồn để dự đoán khoảng trắng trong từ, tương tự như những gì có thể được thực hiện để dự đoán trường hợp.
- 1. Làm cách nào để tôi cho Rails biết cách viết hoa chính xác từ viết tắt?
- 2. Làm cách nào để xác định chính xác Freebase
- 3. Cách xác định chính xác PRINT_NOTIFY_INFO_DATA?
- 4. Làm thế nào để xác định phụ thuộc appcompat v7 một cách chính xác?
- 5. owl - protege không suy luận chính xác? làm thế nào để xác định chính xác một lớp học "ăn chay"?
- 6. Viết: [\ /] (\ hoặc/regex) chính xác?
- 7. IntentService: Làm thế nào để enqueue một cách chính xác?
- 8. làm thế nào để làm cho phpMyAdmin nhập datetime một cách chính xác từ csv?
- 9. Làm cách nào để xác định trạng thái chính xác của BufferedReader?
- 10. Cách dừng BackgroundWorker chính xác
- 11. XmlTextWriter viết ký tự không chính xác
- 12. Cách loại bỏ một DialogFragment chính xác?
- 13. Làm thế nào để chia số chính xác gấp đôi nhỏ một cách chính xác mà không có lỗi chính xác?
- 14. MDNS xác định chính xác địa chỉ như thế nào?
- 15. Cách chính xác trả về một chuỗi từ một hàm
- 16. Làm cách nào để triển khai IUserType chính xác?
- 17. Làm cách nào để binding elementname hoạt động chính xác?
- 18. Làm cách nào để gọi IL2JS chính xác?
- 19. Làm cách nào để lưu trữ mật khẩu * chính xác *?
- 20. R thống kê: Cách grep một từ chính xác
- 21. Làm cách nào để thêm chính xác 1 mili giây?
- 22. Cách chính xác để sử dụng get_or_create?
- 23. Độ chính xác của CLLocation chính xác đến mức nào?
- 24. Làm cách nào để đặt tiêu đề json chính xác?
- 25. Cách chính xác để thực hiện ThreadPool.RegisterWaitForSingleObject
- 26. cách chính xác để định dạng chức năng javascript
- 27. Làm cách nào để xác thực Biểu thức chính quy?
- 28. Cách chính xác để mô phỏng điểm nổi chính xác đơn trong python?
- 29. cách chính xác để sử dụng StringBuilder
- 30. Cách chính xác để thừa kế từ std :: exception
điều khoản y tế sẽ khó khăn. –
Đây là ngôn ngữ cụ thể, btw. Dữ liệu của bạn có bằng tiếng Anh không? –
@Alex Yep, tất cả tiếng Anh. – Mike