Tôi đã tải xuống SharpNLP từ trang web này http://sharpnlp.codeplex.com/ nhưng đã tải xuống tệp .nbin, mà tôi không biết cách xử lý. Bất kỳ trợ giúp nào được hưởng?sharpNLP dưới dạng phần mở rộng tệp .nbin
Trả lời
Tôi cũng là một người dùng như bạn. Nhưng với một chút đấu tranh, tôi đã tìm thấy một vài cách để sử dụng tệp Nbin. Như đã nêu Nbin tập tin được đào tạo các mô hình. Chúng tôi có thể tạo tệp Nbin bằng cách sử dụng BinaryGisModelWriter. Tuy nhiên cũng giống như tôi, tôi tin rằng bạn cũng không quan tâm để tạo ra mô hình của riêng bạn, nhưng để sử dụng các tập tin nbin hiệu quả trong dự án của bạn.
Vì vậy, bạn cần hai dll.
SharpEntropy.dll OpenNLP.dll
Ngoài này cho một sự khởi đầu nhanh chóng, bạn có thể tải về Sample Project from Code Project for SharpNLP
Nó là tốt hơn để tải về .NET 2.0 version of the sample
Bên trong bạn sẽ có một dự án có tên OpenNLP. Thêm dự án đó vào bất kỳ dự án nào mà bạn muốn sử dụng NLP hoặc các tệp nbin và thêm một tham chiếu từ giải pháp của bạn vào dự án "OpenNLP".
Bây giờ từ giải pháp chính của bạn, bạn có thể khởi tạo các công cụ khác nhau như thế nào, ví dụ tôi sẽ cho bạn thấy khởi tạo của một máy dò câu, tokenizer và PosTagger
private string mModelPath = @"C:\Users\ATS\Documents\Visual Studio 2012\Projects\Google_page_speed_json\Google_page_speed_json\bin\Release\";
private OpenNLP.Tools.SentenceDetect.MaximumEntropySentenceDetector mSentenceDetector;
private OpenNLP.Tools.Tokenize.EnglishMaximumEntropyTokenizer mTokenizer;
private OpenNLP.Tools.PosTagger.EnglishMaximumEntropyPosTagger mPosTagger;
Các mModelPath được biến để giữ đường dẫn của các tệp nbin mà bạn muốn sử dụng.
Bây giờ tôi sẽ chỉ cho bạn cách sử dụng các tệp nbin bằng cách sử dụng hàm tạo của các lớp được xác định ở trên.
Đối Detector Câu
private string[] SplitSentences(string paragraph)
{
if (mSentenceDetector == null)
{
mSentenceDetector = new OpenNLP.Tools.SentenceDetect.EnglishMaximumEntropySentenceDetector(mModelPath + "EnglishSD.nbin");
}
return mSentenceDetector.SentenceDetect(paragraph);
}
Đối Tokenizer
private string[] TokenizeSentence(string sentence)
{
if (mTokenizer == null)
{
mTokenizer = new OpenNLP.Tools.Tokenize.EnglishMaximumEntropyTokenizer(mModelPath + "EnglishTok.nbin");
}
return mTokenizer.Tokenize(sentence);
}
Và đối với POSTagger
private string[] PosTagTokens(string[] tokens)
{
if (mPosTagger == null)
{
mPosTagger = new OpenNLP.Tools.PosTagger.EnglishMaximumEntropyPosTagger(mModelPath + "EnglishPOS.nbin", mModelPath + @"\Parser\tagdict");
}
return mPosTagger.Tag(tokens);
}
Bạn có thể thấy rằng tôi đã sử dụng EnglishSD.nbin, EnglishTok.nbin và EnglishPOS.nbin cho S lần lượt tìm kiếm, gắn thẻ và gắn thẻ POS. Các tệp nbin chỉ là các mô hình được đào tạo trước có thể được sử dụng bằng cách sử dụng SharpNLP hoặc OpenNLP nói chung.
Bạn có thể tìm thấy các thiết lập mới nhất của mô hình đào tạo từ Các mô hình chính thức OpenNLP Tool hoặc Từ kho Codeplex file Nbin để sử dụng với SharpNLP
Một tagger mẫu POS sử dụng các phương pháp trên và các tập tin Nbin sẽ như sau,
public void POSTagger_Method(string sent)
{
File.WriteAllText("POSTagged.txt", sent+"\n\n");
string[] split_sentences = SplitSentences(sent);
foreach (string sentence in split_sentences)
{
File.AppendAllText("POSTagged.txt", sentence+"\n");
string[] tokens = TokenizeSentence(sentence);
string[] tags = PosTagTokens(tokens);
for (int currentTag = 0; currentTag < tags.Length; currentTag++)
{
File.AppendAllText("POSTagged.txt", tokens[currentTag] + " - " + tags[currentTag]+"\n");
}
File.AppendAllText("POSTagged.txt", "\n\n");
}
}
bạn có thể viết phương pháp tương tự cho chunking, phân tích, vv, bằng cách sử dụng các tập tin Nbin sẵn, hoặc bạn có thể đào tạo một trong những của riêng bạn.
Mặc dù tôi đã không được đào tạo một mô hình trên của riêng tôi, cú pháp cho việc đào tạo một mô hình từ một tập tin văn bản đào tạo gọn gàng hình thành là
System.IO.StreamReader trainingStreamReader = new System.IO.StreamReader(trainingDataFile);
SharpEntropy.ITrainingEventReader eventReader = new SharpEntropy.BasicEventReader(new SharpEntropy.PlainTextByLineDataReader(trainingStreamReader));
SharpEntropy.GisTrainer trainer = new SharpEntropy.GisTrainer();
trainer.TrainModel(eventReader);
mModel = new SharpEntropy.GisModel(trainer);
Tôi tin rằng bài viết này sẽ giúp bạn bắt đầu theo cách của bạn với SharpNLP. Vui lòng thảo luận về bất kỳ vấn đề nào mà bạn gặp phải. Tôi sẽ rất vui khi được trả lời.
- 1. Thay đổi phần mở rộng của tệp khi người dùng thay đổi Lưu dưới dạng Lưu dưới dạng SaveFileDialog
- 2. Bạn có thể hiển thị tệp không có phần mở rộng .jsp dưới dạng JSP không?
- 3. GNU dưới dạng mở rộng chỉ thị .macro
- 4. Scrollview mở rộng ra ngoài phần dưới màn hình
- 5. jQuery.ajax() gửi yêu cầu POST dưới dạng GET trong phần mở rộng của Chrome
- 6. Cài đặt OpenCV dưới dạng phần mở rộng php trong Windows
- 7. Thêm phần mở rộng tệp tùy chỉnh vào Netbeans
- 8. Phần mở rộng tệp cho PowerShell 3
- 9. Phần mở rộng tệp mã C++? .cc vs .cpp
- 10. cách tạo phần mở rộng tệp tùy chỉnh trong C#?
- 11. MemoryMappedFiles.MemoryMappedFile.CreateFromFile sẽ không mở rộng tệp dưới linux/mono
- 12. Linux: xóa phần mở rộng tệp cho nhiều tệp
- 13. phần mở rộng tệp .kt? Loại tệp này là gì?
- 14. Tải tệp mở rộng
- 15. Mở một tệp Excel và lưu dưới dạng .XLS
- 16. Tự động mở tệp dưới dạng nhị phân với Ruby
- 17. Delphi - phần mở rộng identcache
- 18. Gửi tệp dưới dạng nhiều phần thông qua xmlHttpRequest
- 19. FileUpload tải tệp mở rộng
- 20. Đặt chiều rộng tối đa của ImageView dưới dạng phần trăm chiều rộng của bố mẹ
- 21. trong tệp C++: tệp được mở dưới dạng ios :: nhị phân khác với tệp được mở dưới dạng ios :: binary | ios :: ra?
- 22. Thay đổi phần mở rộng tệp bằng Python
- 23. Chỉ tên tệp có phần mở rộng trong Windows
- 24. Cách lấy phần mở rộng loại tệp từ byte [] (Blob)
- 25. RegEx - Cách chèn chuỗi trước phần mở rộng tệp
- 26. Cách lấy phần mở rộng của tệp bằng PHP?
- 27. UIDocumentInteractionController, Không có phần mở rộng tệp nhưng UTI
- 28. Cách kiểm tra phần mở rộng tệp trong android
- 29. Phần mở rộng tệp Pascal ưa thích là gì?
- 30. Thay đổi phần mở rộng tệp trong SharePoint
hey i am new to visual studio và sharpNLP i đã đọc bài đăng của bạn và thử implementaion nhưng tôi đang gặp phải một số vấn đề bạn có thể giúp tôi –
Chắc chắn. Hãy cho tôi biết những vấn đề mà bạn đang phải đối mặt. –
Xin chào @ArunTS Cảm ơn bạn đã đăng bài, Điều này thực sự hữu ích. –