Hướng dẫn fast language detection python - Python phát hiện ngôn ngữ nhanh
1 Show Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm. Tôi đang sử dụng DASK để tính toán song song và muốn phát hiện ngôn ngữ của các câu trong một cột bằng cách sử dụng 1. Tuy nhiên, tôi vẫn không thể đạt được bất kỳ tốc độ nào trong việc có được ngôn ngữ của các hàng trong cột.Dưới đây là mã của tôi:
Tệp CSAV này có 800000 hàng mỗi hàng chứa khoảng. 20 từ câu dài. Bất kỳ đề xuất nào làm thế nào tôi có thể đạt được phát hiện ngôn ngữ nhanh hơn vì hiện tại phải mất 2-3 giờ. hỏi ngày 2 tháng 4 năm 2020 lúc 15:47Apr 2, 2020 at 15:47
Theo mặc định, data DataFrame sử dụng một nhóm luồng để xử lý. Tôi đoán là thuật toán phát hiện ngôn ngữ của bạn được viết bằng python thuần túy (chứ không phải c/cython giống như hầu hết các gấu trúc) và do đó bị giới hạn bởi Gil. Điều này có nghĩa là bạn nên sử dụng các quy trình thay vì chủ đề. Bạn có thể yêu cầu DASK sử dụng các quy trình bằng cách thêm từ khóa 2 vào bất kỳ cuộc gọi tính toán hoặc liên tục nào
Thông tin thêm về các trình lập lịch khác nhau của Dask và khi nào nên sử dụng chúng ở đây: https://docs.dask.org/en/latest/scheduling.html Đã trả lời ngày 4 tháng 4 năm 2020 lúc 16:32Apr 4, 2020 at 16:32
MrocklinmrocklinMRocklin 53.4K21 Huy hiệu vàng147 Huy hiệu bạc221 Huy hiệu đồng21 gold badges147 silver badges221 bronze badges 3 Bắt đầuBốn công cụ Python để xác định ngôn ngữ của văn bản của bạn và bài kiểm tra tốc độ và độ chính xácẢnh của Jacqueline Brandwayn trên unplashHầu hết các ứng dụng NLP có xu hướng dành riêng cho ngôn ngữ và do đó yêu cầu dữ liệu đơn ngữ. Để xây dựng một ứng dụng bằng ngôn ngữ mục tiêu của bạn, bạn có thể cần áp dụng một kỹ thuật tiền xử lý lọc văn bản được viết bằng các ngôn ngữ không phải mục tiêu. Điều này đòi hỏi phải xác định đúng ngôn ngữ của từng ví dụ đầu vào. Dưới đây tôi liệt kê một số công cụ bạn có thể sử dụng làm mô -đun Python cho yêu cầu tiền xử lý này và cung cấp một điểm chuẩn hiệu suất đánh giá tốc độ và độ chính xác của từng người. 1) Langdetect 1 là một sự hình thành lại của thư viện phát hiện ngôn ngữ Google từ Java đến Python. Chỉ cần chuyển văn bản của bạn cho hàm 4 đã nhập và nó sẽ xuất mã hai chữ ISO 693 của ngôn ngữ mà mô hình cho điểm tin cậy cao nhất. .from langdetect import DetectorFactory, detect, detect_langstext = "My lubimy mleko i chleb."detect(text) # 'cs' Một vài điểm tô điểm:
from langdetect import DetectorFactory, detect 2) Máy dò ngôn ngữ SpacyNếu bạn sử dụng Spacy cho nhu cầu NLP của mình, bạn có thể thêm thành phần phát hiện ngôn ngữ tùy chỉnh vào đường ống Spacy hiện tại của mình, sẽ cho phép bạn đặt thuộc tính mở rộng có tên 9 trên đối tượng from langdetect import DetectorFactory, detect, detect_langstext = "My lubimy mleko i chleb."detect(text) # 'cs'0. Thuộc tính này sau đó có thể được truy cập thông qua from langdetect import DetectorFactory, detect, detect_langstext = "My lubimy mleko i chleb."detect(text) # 'cs'1, sẽ trả về ngôn ngữ dự đoán cùng với xác suất của nó. import spacy 3) LangidLangid tự hào về tốc độ của nó nói riêng (nhiều hơn về điều này dưới đây). Nó hoạt động tương tự như các công cụ trên, nhưng nó cũng có thể được sử dụng như một công cụ dòng lệnh bằng cách chạy from langdetect import DetectorFactory, detect, detect_langstext = "My lubimy mleko i chleb."detect(text) # 'cs'2. Kiểm tra repo của họ để biết thêm chi tiết và các tùy chọn khác. Để sử dụng Langid làm thư viện Python, hãy sử dụng hàm from langdetect import DetectorFactory, detect, detect_langstext = "My lubimy mleko i chleb."detect(text) # 'cs'3: import langidlangid.classify(text2) # ('en', -127.75649309158325) Bạn có thể hiệu chỉnh dự đoán xác suất, ban đầu được tính toán trong không gian xác suất log, theo những gì có thể được hiểu là điểm số tự tin trong phạm vi từ 0 đến 1: from langid.langid import LanguageIdentifier, modellang_identifier = LanguageIdentifier.from_modelstring(model, norm_probs=True) 4) FasttextFasttext lưu ý rằng mô hình nhận dạng ngôn ngữ được đào tạo trước của nó mất ít hơn 1MB bộ nhớ trong khi có thể phân loại hàng ngàn tài liệu mỗi giây. Tải xuống một mô hình bạn chọn:
import fasttext Tốc độ 🚅Nếu bạn có kế hoạch sử dụng ứng dụng của mình yêu cầu nhận dạng ngôn ngữ trong sản xuất, tốc độ có thể là một cân nhắc quan trọng đối với bạn. Dưới đây là một điểm chuẩn nhanh chóng của bốn công cụ được mô tả ở trên. Tôi đã tải xuống một bộ dữ liệu gồm 10.502 tweet từ Kaggle, được lấy mẫu ngẫu nhiên từ các tin nhắn Twitter được gắn thẻ công khai có nguồn gốc từ 130 quốc gia khác nhau. Họ được chú thích vì bằng tiếng Anh hoặc không phải tiếng Anh, trong số các tính năng khác. Nguồn dữ liệu: https://www.kaggle.com/rtatman/the-umass-global-english-on-twitter-dataSet. Bộ dữ liệuimport pandas as pddf = pd.read_csv('all_annotated.tsv', sep='\t')Kaggle sáu hàng đầu tiên Kết quả của bài kiểm tra tốc độ! Kết quả kiểm tra tốc độFasttext chỉ mất 129 ms để dự đoán trên hơn 10.000 datapoints. Langid đứng thứ hai và các ứng cử viên khác có nhiều thứ tự chậm hơn. Độ chính xác 🔬from sklearn.metrics import accuracy_scoreytrue = df['Definitely English'].to_list() Fasttext có điểm chính xác cao nhất, tiếp theo là Langdetect và Spacy-Langdetect. Một cái gì đó cho tôi biết rằng Spacy-Langdetect chỉ là langdetect dưới mui xe. ;) (Họ có chính xác điểm chính xác giống nhau và điều đó cũng sẽ giải thích các tên thư viện tương tự.) Và để có biện pháp tốt, đây là độ chính xác, nhớ lại và điểm F1 cho mỗi mô hình. 0Lấy điTôi sẽ đi với fasttext nếu bạn xử lý một bộ dữ liệu rất lớn. |