- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用一些基于规则和统计的词性标注器来用词性 (POS) 标记一个语料库(大约 5000 个句子)。以下是我的测试语料库的一个片段,其中每个单词都由其各自的 POS 标签以“/”分隔。
No/RB ,/, it/PRP was/VBD n't/RB Black/NNP Monday/NNP ./.
But/CC while/IN the/DT New/NNP York/NNP Stock/NNP Exchange/NNP did/VBD n't/RB fall/VB apart/RB Friday/NNP as/IN the/DT Dow/NNP Jones/NNP Industrial/NNP Average/NNP plunged/VBD 190.58/CD points/NNS --/: most/JJS of/IN it/PRP in/IN the/DT final/JJ hour/NN --/: it/PRP barely/RB managed/VBD *-2/-NONE- to/TO stay/VB this/DT side/NN of/IN chaos/NN ./.
Some/DT ``/`` circuit/NN breakers/NNS ''/'' installed/VBN */-NONE- after/IN the/DT October/NNP 1987/CD crash/NN failed/VBD their/PRP$ first/JJ test/NN ,/, traders/NNS say/VBP 0/-NONE- *T*-1/-NONE- ,/, *-2/-NONE- unable/JJ *-3/-NONE- to/TO cool/VB the/DT selling/NN panic/NN in/IN both/DT stocks/NNS and/CC futures/NNS ./.
标注完语料库后是这样的:
No/DT ,/, it/PRP was/VBD n't/RB Black/NNP Monday/NNP ./.
But/CC while/IN the/DT New/NNP York/NNP Stock/NNP Exchange/NNP did/VBD n't/RB fall/VB apart/RB Friday/VB as/IN the/DT Dow/NNP Jones/NNP Industrial/NNP Average/JJ plunged/VBN 190.58/CD points/NNS --/: most/RBS of/IN it/PRP in/IN the/DT final/JJ hour/NN --/: it/PRP barely/RB managed/VBD *-2/-NONE- to/TO stay/VB this/DT side/NN of/IN chaos/NNS ./.
Some/DT ``/`` circuit/NN breakers/NNS ''/'' installed/VBN */-NONE- after/IN the/DT October/NNP 1987/CD crash/NN failed/VBD their/PRP$ first/JJ test/NN ,/, traders/NNS say/VB 0/-NONE- *T*-1/-NONE- ,/, *-2/-NONE- unable/JJ *-3/-NONE- to/TO cool/VB the/DT selling/VBG panic/NN in/IN both/DT stocks/NNS and/CC futures/NNS ./.
我需要计算标记准确度(Tag wise- Recall & Precision),因此需要在标记每个词标记对时找出错误(如果有的话)。
我正在考虑的方法是遍历这两个文本文件并将它们存储在一个列表中,然后逐个元素地比较“两个”列表。
这个方法对我来说似乎很粗糙,所以希望你们提出一些更好的解决上述问题的方法。
từwikipedia页:
In a classification task, the precision for a class is the number of true positives (i.e. the number of items correctly labeled as belonging to the positive class) divided by the total number of elements labeled as belonging to the positive class (i.e. the sum of true positives and false positives, which are items incorrectly labeled as belonging to the class). Recall in this context is defined as the number of true positives divided by the total number of elements that actually belong to the positive class (i.e. the sum of true positives and false negatives, which are items which were not labeled as belonging to the positive class but should have been).
câu trả lời hay nhất
请注意,由于每个单词都只有一个标签,因此总体召回率和准确率分数对于这项任务没有意义(它们都等于准确率指标)。但要求每个标签的召回率和准确率测量确实有意义 - 例如,您可以找到 DT 标签的召回率和准确率。
一次对所有标签执行此操作的最有效方法与您建议的方法类似,但您可以通过跳过列表制作阶段来节省一次数据传递。读入每个文件的一行,逐字比较这两行,并重复直到到达文件末尾。对于每个单词比较,您可能想要检查单词是否相等,而不是假设两个文件是同步的。对于每种标签,您都保留三个运行总数:真阳性、假阳性和假阴性。如果当前单词的两个标签匹配,则增加标签的真阳性总数。如果它们不匹配,您需要增加真实标签的假阴性总数和机器错误选择的标签的假阳性总数。最后,您可以按照维基百科摘录中的公式计算每个标签的召回率和准确率分数。
我还没有测试过这段代码,我的 Python 也有点生疏,但这应该能让你明白。我假设文件是打开的并且 totals
数据结构是字典的字典:
finished = false
while not finished:
trueLine = testFile.readline()
if not trueLine: # end of file
finished = true
khác:
trueLine = trueLine.split() # tokenise by whitespace
taggedLine = taggedFile.readline()
if not taggedLine:
print 'Error: files are out of sync.'
taggedLine = taggedLine.split()
if len(trueLine) != len(taggedLine):
print 'Error: files are out of sync.'
for i in range(len(trueLine)):
truePair = trueLine[i].split('/')
taggedPair = taggedLine[i].split('/')
if truePair[0] != taggedPair[0]: # the words should match
print 'Error: files are out of sync.'
trueTag = truePair[1]
guessedTag = taggedPair[1]
if trueTag == guessedTag:
totals[trueTag]['truePositives'] += 1
khác:
totals[trueTag]['falseNegatives'] += 1
totals[guessedTag]['falsePositives'] += 1
关于python - 如何计算 POS 标注器的标注精度和召回率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5264492/
Trước đây tôi đã làm cho trình tiêm dll trở nên dễ dàng nhưng tôi có Windows 7 và tôi đã làm nó trong C# và C++ và nó hoạt động tốt nhưng bây giờ khi tôi thử mã tương tự trong Windows 8 thì có vẻ như nó không đúng cách!
Tôi đang cố gắng tạo một phần tử có tên là bộ chia lõi không được dùng nữa trong phiên bản 1.0 vì nó đóng một vai trò quan trọng trong dự án của chúng tôi. Nếu bạn không biết bộ chia lõi làm gì, tôi có thể cung cấp một mô tả ngắn gọn.
Tôi có một số nhện khác nhau và muốn chạy tất cả chúng cùng một lúc. Dựa vào cái này và cái này, tôi có thể chạy nhiều nhện trong cùng một quy trình. Tuy nhiên, tôi không biết cách thiết kế hệ thống tín hiệu để dừng lò phản ứng sau khi tất cả các con nhện kết thúc. Tôi đã thử: cra
Có cách nào để dừng lò phản ứng xoắn khi đạt được một số điều kiện nhất định. Ví dụ: nếu một biến được đặt thành một giá trị nhất định, máy chủ phản ứng có nên dừng không? Câu trả lời hay nhất Lý tưởng nhất là bạn không đặt một biến thành một giá trị và dừng lò phản ứng mà thay vào đó hãy gọi
https://code.angularjs.org/1.0.0rc9/angular-1.0.0rc9.js Liên kết trên xác định tệp js bên ngoài, tôi không biết về việc tiêm Angular-1.0.0rc9.js (trong
Tôi đang cố chạy một chức năng và đưa dịch vụ vào đó. Tôi nghĩ rằng điều này có thể được thực hiện dễ dàng bằng cách sử dụng $injector. Vì vậy, tôi đã thử cách sau (ví dụ đơn giản): Angular.injector().invoke( [ "$q
Trong Google Guice, tôi có thể sử dụng hàm createInjector để tạo bộ phun dựa trên nhiều mô-đun. Bởi vì tôi sử dụng GWT.create để khởi tạo phần chèn trong GoogleGin (trong
Tôi đang sử dụng liên kết cấu hình trong giải pháp ASP.NET Core 1.1. Về cơ bản, tôi có một số mã đơn giản để liên kết trong phần "Khởi động dịch vụ cấu hình" như thế này: s
Tôi gặp một số vấn đề khi thiết lập initBinder trong Spring MVC. Tôi có ModelAttribution đôi khi có một trường được hiển thị. lớp công khai Mẫu { riêng tư
Tôi đang cố gắng đăng mô hình loại trực tiếp Xem qua jquery post var $form = $('#barcodeTemplate form');
Làm cách nào để viết một chất kết dính mô hình tùy chỉnh cho một mô hình phức tạp chứa tập hợp các đối tượng đa hình? Tôi có cấu trúc mô hình tiếp theo: public class CustomAttributionValueViewModel { publi
Xin chào, tôi đang cố gắng triển khai phương pháp mở rộng mà tôi đã tìm thấy trong bài viết này cho một trình tiêm đơn giản, vì nó không hỗ trợ đăng ký một hàm tạo cụ thể ngay từ đầu. Theo bài viết này, tôi cần sử dụng một đại biểu giả
Xin chào, tôi muốn tự động đăng ký các phụ thuộc của mình. Những gì tôi có bây giờ là: giao diện công cộng IRepository trong đó T: lớp giao diện công cộng IFolderReposi
Tôi đang sử dụng Jasmine để kiểm tra một số mã Angular.js. Để làm được điều này, tôi cần một bộ phun Angular: var kim phun = góc.injector(['ng'
Tôi đang sử dụng trình tạo mã Matlab. Không thể bao gồm hướng dẫn về phong cách viết mã. Đó là lý do tại sao tôi đang tìm kiếm một công cụ để "định hình lại", đổi tên và định dạng lại mã được tạo theo: Tính năng, quy ước biểu ngữ, quy ước biểu ngữ tệp, quy ước đặt tên, v.v.
Câu hỏi này đã có câu trả lời ở đây: Tôi phải đặt từ khóa "mẫu" và "tên chữ" ở đâu và tại sao (8 câu trả lời) Đóng 8
Tôi đã phát triển một công cụ có thể thay đổi giao diện của một số chương trình. Để làm được điều này tôi cần thêm một dll vào một số quy trình. Bây giờ về cơ bản tôi sử dụng phương pháp này. Vấn đề thường là mọi người không thể tiêm dll vì chúng.
Tôi muốn viết một ứng dụng java bằng cách sử dụng swing, spring và hibernate. Tôi muốn sử dụng một chất kết dính dữ liệu để điền vào gui các giá trị của Bean và tôi cũng muốn nó phản ánh gui
Tôi có mã này và khi cả hai con nhện kết thúc thì chương trình vẫn chạy. #!C:\Python27\python.exe từ lò phản ứng nhập khẩu Twisted.internet từ Scrapy.cr
Điểm chính là khung thử nghiệm Spring Batch (v2) có JobLauncherTestUtils.setJob với chú thích @Autowired. Bộ thử nghiệm của chúng tôi có nhiều nhà cung cấp lớp Công việc. Bởi vì lớp học này không
Tôi là một lập trình viên xuất sắc, rất giỏi!