Tải bản đầy đủ (.docx) (35 trang)

Mã nguồn mở mallet

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (361 KB, 35 trang )

Khoa CNTT – Trường Đại Học Điện Lực

LỜI CÁM ƠN
Để hoàn thành bài tập cuối kì môn học máy, nhóm em xin tỏ lòng biết ơn sâu sắc
đến cô giáo T.S Nguyễn Thị Thu Hà đã tận tình hướng dẫn nhóm em trong suốt quá trình
làm bài.
Nhóm em xin chân thành cảm ơn các thầy cô trong khoa Công nghệ thông tin trường Đại học Điện Lực đã tận tình giúp đỡ, truyền đạt kiến thức , tạo mọi điều kiện để
em hoàn thành bài tập cuối kì tốt nhất. Với vốn kiến thức tiếp thu trong quá trình học tập
không chỉ là nền tảng cho quá trình làm bài mà còn là hành trang quý báu để em bước
vào đời một cách vững chắc và tự tin.
Trong quá trình học tập và làm bài, nếu chúng em có chỗ nào sai sót em mong
thầy cô bỏ qua.
Cuối cùng, em xin chúc thầy dồi dào sức khỏe, hạnh phúc và thành công trong sự
nghiệp cao quý – sự nghiệp giáo dục.
Nhóm em xin chân thành cảm ơn!
Sinh viên thực hiện: Lưu Tú Anh
Lê Tuấn Anh

1


Khoa CNTT – Trường Đại Học Điện Lực

2


Khoa CNTT – Trường Đại Học Điện Lực

MỤC LỤC
LỜI CÁM ƠN
MỤC LỤC


CHƯƠNG 1: LÝ THUYẾT
1.1

Giới thiệu mã nguồn mở Mallet

1.1.1

Tổng quan

1.1.2

Sử dụng

1.1.3

Các chức năng

1.1.4

Một số API trong Mallet

1.2 Phân loại (Classification)
3.1. Xác định đào tạo và kiểm thử Sets
3.2. Lựa chọn phương pháp phân loại
CHƯƠNG 2: THỰC HÀNH VÀ CÀI ĐẶT
2.1 Giao diện
2.2 Một số mã code sử dụng trong chương trình
a. Chạy CMD
b. Chuyển file sang định dạng Mallet


3


Khoa CNTT – Trường Đại Học Điện Lực

c.Chạy code huấn luyện chủ đề
2.3 Thực nghiệm

4


Khoa CNTT – Trường Đại Học Điện Lực

CHƯƠNG 1: LÝ THUYẾT
1.1 Giới thiệu mã nguồn mở Mallet
1.1.1 Tổng quan
Mallet là một gói phần mềm dựa trên Java để thống kê xử lý ngôn ngữ tự nhiên,
phân loại tài liệu, phân cụm, mô hình chủ đề, khai thác thông tin, và học các ứng dụng
máy tính khác vào văn bản.
Mallet bao gồm các công cụ tinh vi để phân loại tài liệu: chương trình hiệu quả
cho chuyển đổi văn bản thành "tính năng", một loạt các thuật toán (bao gồm cả Naïve
Bayes, Maximum Entropy, và Decision Trees), và tiêu chuẩn để đánh giá hiệu suất phân
lớp sử dụng nhiều số liệu thường được sử dụng.
Ngoài phân loại, Mallet gồm các công cụ cho trình tự gắn thẻ cho các ứng dụng
như: khai thác tên thực thể từ văn bản. Thuật toán bao gồm Hidden Markov Models,
Models Maximum Entropy Markov, và Conditional Random Fields. Những phương
pháp này được thực hiện trong một hệ thống mở rộng cho máy biến đổi trạng thái hạn
chế.
Mô hình chủ đề rất hữu ích cho việc phân tích các bộ sưu tập lớn các văn bản
không có nhãn. Bộ công cụ Mallet mô hình chủ đề chứa hiệu quả cao, triển khai lấy mẫu

dựa trên phương pháp lấy mẫu của Latent Dirichlet Allocation, Pachinko Allocation,
và Hierarchical LDA.

5


Khoa CNTT – Trường Đại Học Điện Lực

Nhiều thuật toán trong Mallet phụ thuộc vào tối ưu hóa số. Mallet bao gồm thực
thi có hiệu quả của bộ nhớ hạn chế BFGS, trong số nhiều phương pháp tối ưu hóa khác.
Ngoài các ứng dụng học máy tinh vi, Mallet bao gồm thói quen cho chuyển tài
liệu văn bản thành các thể hiện số mà sau đó có thể được xử lý một cách hiệu quả. Quá
trình này được thực hiện thông qua một hệ thống linh hoạt của "Pipe", trong đó xử lý các
nhiệm vụ riêng biệt như tokenizing chuỗi, loại bỏ stopwords, và chuyển đổi dữ liệu vào
vectơ đếm.
Một gói add-on tới Mallet, gọi GRMM, có hỗ trợ đối cho kết luận trong các mô
hình đồ họa nói chung và đào tạo của CRFs với cấu trúc đồ họa tùy ý.
1.1.2 Sử dụng
● Trước khi sử dụng Mallet ta phải tải về và cài đặt như các ứng dụng khác
Download tại : />Hướng dẫn cài dặt : />● Để sử dụng Mallet ta có 2 cách :
Cách 1 : Sử dụng Command line trên win, chạy CMD.exe
Cách 2 : Xây dựng chương trình sử dụng ngôn ngữ Java, add thư viện Mallet, sử dụng
API trong Mallet đã dược xây dựng.
1.1.3 Các chức năng
● Import data

6


Khoa CNTT – Trường Đại Học Điện Lực


Có hai phương pháp chính để nhập dữ liệu sang định dạng Mallet, thứ nhất khi các
nguồn dữ liệu bao gồm nhiều tập tin riêng biệt, và thứ hai khi dữ liệu được chứa trong
một tập tin duy nhất, với một thể hiện trên mỗi dòng.
Một trường hợp cho mỗi file : chuyển dữ liệu sang dịnh dạng của mallet
bin/mallet import-dir --input sample-data/web/* --output web.mallet
Mallet sẽ sử dụng các tên thư mục như các nhãn và các tên file là tên ví dụ.
Một file, một trường hợp cho mỗi dòng : Giả sử dữ liệu được định dạng sau:
[URL] [ngôn ngữ] [text của trang ...]
Chạy command line :
bin/mallet import-file --input /data/web/data.txt --output web.mallet
Các mã thông báo đầu tiên của mỗi dòng (khoảng trắng phân cách, với dấu phẩy
tùy chọn) trở thành tên trường hợp, mã thông báo thứ hai trở thành nhãn hiệu, và tất cả
các văn bản bổ sung vào dòng được hiểu như là một chuỗi các thẻ từ.
● Phân loại tài liệu (Document Classification)
Phân loại là một thuật toán để phân biệt giữa một vị trí cố định của lớp, chẳng hạn
như "spam" và "không phải spam", dựa trên các ví dụ đào tạo nhãn. Mallet bao gồm việc
triển khai của một số thuật toán phân loại, bao gồm cả Naïve Bayes, Maximum Entropy,
và cây quyết định. Ngoài ra, Mallet cung cấp công cụ để đánh giá phân loại.

7


Khoa CNTT – Trường Đại Học Điện Lực

Đào tạo một phân lớp:
Để đào tạo một phân lớp vào một tập tin dữ liệu Mallet gọi training.mallet, sử
dụng lệnh :
bin/mallet


train-classifier

--input

training.mallet

--output-classifier

my.classifier
Lựa chọn một thuật toán:
Thuật toán phân loại Naïve Bayes là mặc định. Để chọn thuật toán khác, sử
dụng --trainer lựa chọn :
bin/mallet train-classifier --input training.mallet --output-classifier my.classifier \
--trainer MaxEnt
Các thuật toán được hỗ trợ bao gồm Maxent,

NaiveBayes, C45, DecisionTree...

Đánh giá (Evaluation):
Không phân lớp là hoàn hảo, vì vậy điều quan trọng là phải biết liệu một
phân lớp cho ra kết quả tốt trên dữ liệu không được sử dụng trong đào tạo. Để chia
một tập duy nhất của trường được dán nhãn vào danh sách đào tạo và thử nghiệm,
bạn có thể sử dụng một lệnh như thế này:
bin/mallet train-classifier --input labeled.mallet --training-portion 0.9
Lựa chọn báo cáo (Reporting options) :

8


Khoa CNTT – Trường Đại Học Điện Lực


Để báo cáo chính xác cho dữ liệu huấn luyện và F1 cho nhãn lớp " sports "
trên dữ liệu thử nghiệm, sử dụng lệnh:
bin/mallet train-classifier --input labeled.mallet --training-portion 0.9 \
--report train:accuracy test:f1:sports
Phân chia ngẫu nhiên phức tạp / Cross-validation:
Thực hiện nhiều chia tách thử nghiệm / đào tạo có thể cung cấp một cái
nhìn tốt hơn về hiệu suất của một phân lớp. Để sử dụng 10 ngẫu nhiên 90:10 phân
chia, sử dụng các tùy chọn: --training-portion 0.9 --num-trials 10. Để sử dụng 10
lần qua xác nhận sử dụng --cross-validation 10.
So sánh nhiều thuật toán:
Có thể để đào tạo nhiều hơn một phân lớp cho mỗi thử nghiệm, bởi đơn
giản là cung cấp nhiều hơn một --trainer lựa chọn:
bin/mallet train-classifier --input labeled.mallet --training-portion 0.9 \ --trainer
MaxEnt --trainer NaiveBayes
Áp dụng 1 phân lớp đã lưu tới dữ liệu được gán nhãn mới :
Sử dụng Csv2Classify (for one-instance-per-line data) or Text2Classify (for
one-instance-per-file data).
bin/mallet classify-file --input data --output - --classifier classifier

9


Khoa CNTT – Trường Đại Học Điện Lực

bin/mallet classify-dir --input datadir --output - --classifier classifier
● Làm việc với trình tự (Working with sequences)
Mallet bao gồm việc triển khai sử dụng rộng rãi các thuật toán chuỗi bao gồm mô
hình Markov ẩn (HMMs) và chuỗi tuyến tính ngẫu nhiên các lĩnh vực có điều kiện
(CRFs). Các thuật toán này hỗ trợ các ứng dụng như phát hiện gen và công nhận tên thực

thể.
SimpleTagger
SimpleTagger là một giao diện dòng lệnh cho các lớp Mallet Conditional Random
Field (CRF). Dưới đây là một ví dụ rất đơn giản cho thấy việc sử dụng các SimpleTagger
để gán cho một chuỗi các văn bản.
Tập tin đầu vào của bạn phải ở trong các định dạng sau:
Bill CAPITALIZED noun
slept non-noun
here LOWERCASE STOPWORD non-noun
Đó là, mỗi dòng đại diện cho một thẻ, và có định dạng:
feature1 feature2 ... featuren nhãn
Sau đó, bạn có thể đào tạo một CRF sử dụng SimpleTagger như thế này (trên một dòng):
hough@gobur:~/tagger-test$ java -cp

10


Khoa CNTT – Trường Đại Học Điện Lực

"/home/hough/mallet/class:/home/hough/mallet/lib/mallet-deps.jar"
cc.mallet.fst.SimpleTagger
--train true --model-file nouncrf sample
Điều này giả định rằng Mallet đã được cài đặt và được xây dựng trong / home /
hough / mallet. Lưu ý rằng thư mục Mallet được xây dựng (/ home / hough / mallet /
class) và các tập tin Mallet jar cần thiết (/home/hough/mallet/mallet-deps.jar) trong
lasspath.
--train true : tùy chọn định rõ đào tạo,
--model-file nouncrf : xác định nơi các CRF ghi vào.
Điều này tạo ra một CRF được đào tạo trong các tập tin "nouncrf".
Nếu chúng ta có một tập tin "stest" chúng ta muốn dán nhãn:

CAPITAL Al
Slept

ư ưdwa

here
Chúng ta có thể làm điều này với các CRF trong tập tin nouncrf bằng cách gõ:
hough@gobur:~/tagger-test$ java -cp
"/home/hough/mallet/class:/home/hough/mallet/lib/mallet-deps.jar"

11


Khoa CNTT – Trường Đại Học Điện Lực

cc.mallet.fst.SimpleTagger
--model-file nouncrf stest
trong đó sản xuất ra như sau:
Number of predicates: 5
noun CAPITAL Al
non-noun slept
non-noun here

Để sử dụng đào tạo đa luồng CRF, xác định số lượng của thread với --threads:
hough@gobur:~/tagger-test$ java -cp
"/home/hough/mallet/class:/home/hough/mallet/lib/mallet-deps.jar"
cc.mallet.fst.SimpleTagger
--train true --model-file nouncrf --threads 8 sample
Một danh sách tất cả các tùy chọn có sẵn với SimpleTagger có thể thu được bằng cách
xác định --help lựa chọn:

hough@gobur:~/tagger-test$ java -cp
"/home/hough/mallet/class:/home/hough/mallet/lib/mallet-deps.jar"

12


Khoa CNTT – Trường Đại Học Điện Lực

cc.mallet.fst.SimpleTagger
--help
● Mô hình chủ đề
Mô hình chủ đề cung cấp một cách đơn giản để phân tích khối lượng lớn các văn
bản không có nhãn. Một "chủ đề" bao gồm một cụm từ mà thường xuyên xuất hiện cùng
nhau. Sử dụng các đầu mối theo ngữ cảnh, các mô hình chủ đề có thể kết nối từ với nghĩa
tương tự và phân biệt giữa sử dụng các từ với nhiều ý nghĩa.
Importing Documents
Thay đổi thư mục chạy lệnh :
bin/mallet import-dir --input /data/topic-input --output topic-input.mallet --keepsequence --remove-stopwords
Building Topic Models
bin/mallet train-topics --input topic-input.mallet --num-topics 100 --output-state
topic-state.gz
--input [FILE]

Sử dụng tùy chọn này để xác định tập tin bộ sưu tập Mallet đã tạo

ở bước trước.
Hyperparameter Tối ưu hóa

13



Khoa CNTT – Trường Đại Học Điện Lực

--optimize-interval [NUMBER] : Bật tối ưu hóa hyperparameter, cho phép các mô hình
để phù hợp hơn các dữ liệu bằng cách cho phép một số chủ đề để được nổi bật hơn so với
những chủ đề khác.Tối ưu hóa mỗi 10 lần lặp lại là hợp lý.
--optimize-burn-in [NUMBER] : Số lần lặp lại trước khi tối ưu hóa hyperparameter bắt
đầu. Mặc định là hai lần khoảng thời gian tối ưu hóa.
Mô hình đầu ra
--output-model [FILENAME] : Xác định một tập tin để ghi một tuần tự Mallet chủ
đề đối tượng huấn luyện. Đây là loại đầu ra là thích hợp cho tạm dừng và khởi động lại
đào tạo, nhưng dữ liệu không sản xuất có thể được phân tích dễ dàng.
--output-state [FILENAME] : Xuất ra một tập tin văn bản nén có chứa các từ trong
dữ liệu với các tập chủ đề của chúng. Định dạng tập tin này có thể dễ dàng được phân
tích và được sử dụng bởi phần mềm không dựa trên Java. Lưu ý rằng các tập tin đào tạo
sẽ được GZipped, do đó, nó là hữu ích để cung cấp một tên tập tin kết thúc bằng .gz.
--output-doc-topics [FILENAME : Xác định một tập tin để ghi các thành phần chủ
đề của văn bản. Xem các tùy chọn --help cho các thông số liên quan đến tập tin này.
--output-topic-keys [FILENAME] : Tập tin này có chứa một "chìa khóa" gồm
những lời k hàng đầu cho mỗi chủ đề (mà k được xác định bởi các tùy chọn --num-topword). Kết quả này có thể hữu ích cho việc kiểm tra rằng mô hình đang làm việc cũng
như hiển thị các kết quả của mô hình. Ngoài ra, tập tin này báo cáo các tham số Dirichlet

14


Khoa CNTT – Trường Đại Học Điện Lực

của mỗi chủ đề. Nếu tối ưu hóa hyperparamter được bật, con số này sẽ là tỷ lệ với phần
tổng thể của bộ sưu tập giao cho một chủ đề nhất định.
Topic Inference (Giao diện chủ đề)

--inferencer-filename [FILENAME] : Tạo một công cụ đề tài suy luận dựa trên các
mô hình đào tạo hiện nay.
bin/mallet infer-topics --help để có được thông tin về việc sử dụng chủ đề suy luận.
Lưu ý rằng bạn phải chắc chắn rằng các dữ liệu mới tương thích với dữ liệu huấn
luyện của bạn.
--use-pipe-from [MALLET TRAINING FILE]
bin/mallet import-file

or import-dir để xác định một tập huấn luyện.

Chủ đề Held-out xác suất
--evaluator-filename [FILENAME] : Phần trước mô tả làm thế nào để có được tỷ
lệ chủ đề cho tài liệu mới. Chúng ta thường muốn đánh giá khả năng đăng nhập của các
tài liệu mới, thiệt thòi hơn tất cả các cấu hình chủ đề.
Như với chủ đề suy luận, bạn phải chắc chắn rằng các dữ liệu mới tương thích với
dữ liệu huấn luyện của bạn.
Tối ưu hóa (Optimization)

15


Khoa CNTT – Trường Đại Học Điện Lực

Mallet bao gồm các phương pháp tối ưu hóa số lượng các chức năng.Việc sử dụng
chính để tối ưu hóa số trong máy học là để tìm các thông số tối đa hóa một hàm loglikelihood cho dữ liệu quan sát. Các mã, tuy nhiên, là rất chung chung và có thể được sử
dụng cho các vấn đề tùy ý.
Các cc.mallet.optimize trung

tâm


gói

xung

quanh

hai

giao

diện,

optimizable và Optimizer. Optimizable có một số tiểu giao diện định nghĩa các lớp khác
nhau của các phương án tối ưu. Lớp optimizable là stateful; họ phải lưu trữ các giá trị
hiện tại của tất cả các thông số.Việc sử dụng nhất optimizable sub-interface
làOptimizable.ByGradientValue. Các lớp có cài đặt giao diện này phải cung cấp phương
pháp tính giá trị của một chức năng cụ thể tại các tham số hiện thời và tính gradient của
hàm, đối với các giá trị tham số hiện tại với. Lưu ý rằng giao diện này không yêu cầu các
ma trận Hessian của hàm bậc hai, do đó giao diện thích hợp cho phương pháp số đó xấp
xỉ Hessian.

16


Khoa CNTT – Trường Đại Học Điện Lực

1.1.4 Một số API trong Mallet

Packages
Classes cho đào tạo và phân loại các


cc.mallet.classify

trường hợp

cc.mallet.classify.constraints.ge
cc.mallet.classify.constraints.pr
Classes cho tính toán và hiển thị chất
lượng của một thử nghiệm phân loại,

cc.mallet.classify.evaluate

bao gồm cả tính chính xác, độ chính
xác, và ma trận nhầm lẫn.
Lớp ví dụ cho thấy làm thế nào để sử

cc.mallet.classify.examples

dụng phân loại.

cc.mallet.classify.tests

JUnit tests for classifiers
Chương trình dòng lệnh để phân loại

cc.mallet.classify.tui

tài liệu.
Phân cụm không có giám sát của các


cc.mallet.cluster

đối tượng trong một InstanceList.

cc.mallet.cluster.clustering_scorer
cc.mallet.cluster.evaluate

17


Khoa CNTT – Trường Đại Học Điện Lực

cc.mallet.cluster.evaluate.tests
cc.mallet.cluster.examples
cc.mallet.cluster.iterator
cc.mallet.cluster.iterator.tests
cc.mallet.cluster.neighbor_evaluator
cc.mallet.cluster.tui
cc.mallet.cluster.util
cc.mallet.examples
cc.mallet.extract

Chưa thực hiện

cc.mallet.extract.pipe
cc.mallet.extract.test
Chuyển dịch, bao gồm cả điều kiện

cc.mallet.fst


Random Fields (CRFs).

cc.mallet.fst.confidence
cc.mallet.fst.semi_supervised
cc.mallet.fst.semi_supervised.constraints
cc.mallet.fst.semi_supervised.pr
cc.mallet.fst.semi_supervised.pr.constraint
s
cc.mallet.fst.semi_supervised.tui

18


Khoa CNTT – Trường Đại Học Điện Lực

Các thử nghiệm về Cảm biến, bao gồm

cc.mallet.fst.tests

cả điều kiện Random Fields (CRFs).

cc.mallet.grmm.examples
cc.mallet.grmm.inference
cc.mallet.grmm.inference.gbp
cc.mallet.grmm.learning
cc.mallet.grmm.learning.extract
cc.mallet.grmm.learning.templates
cc.mallet.grmm.test
cc.mallet.grmm.types
cc.mallet.grmm.util

Classes cho việc tìm kiếm tối đa của

cc.mallet.optimize

một hàm.

cc.mallet.optimize.tests

JUnit tests for maximize.
Classes cho xử lý dữ liệu chuyên dụng

cc.mallet.pipe

tùy vào các trường hợp
Classes tạo ra các trường hợp từ các

cc.mallet.pipe.iterator

loại khác nhau của các đầu vào hoặc
cấu trúc dữ liệu.

cc.mallet.pipe.iterator.tests

19


Khoa CNTT – Trường Đại Học Điện Lực

cc.mallet.pipe.tests


JUnit tests for pipes.

cc.mallet.pipe.tsf

TokenSequenceFeature Pipes.
JUnit tests for TokenSequenceFeature

cc.mallet.pipe.tsf.tests

Pipes.

cc.mallet.share.casutton.ner
cc.mallet.share.mccallum.ner

Đặt tên thực thể nhận dạng.
Tiện ích mà hiện nay bao gồm một

cc.mallet.share.upenn

trang dòng lệnh cho việc phân loại theo
Maxent.

cc.mallet.share.upenn.ner
cc.mallet.share.weili.ner
cc.mallet.share.weili.ner.enron
cc.mallet.topics
cc.mallet.topics.tui
Mallet loại cơ bản, bao gồm cả

cc.mallet.types


FeatureVector, Instance, Label, vv
JUnit tests cho nhiều loại Mallet cơ

cc.mallet.types.tests

bản.
Tiện ích hỗn hợp bao gồm xử lý dòng

cc.mallet.util

lệnh, hàm toán học, lexing, đăng nhập.

20


Khoa CNTT – Trường Đại Học Điện Lực

cc.mallet.util.resources.wn
cc.mallet.util.search
cc.mallet.util.tests

JUnit tests các tiện ích hỗn hợp

21


Khoa CNTT – Trường Đại Học Điện Lực

1.2 Phân loại (Classification)

Khi một danh sách các vectơ Tính năng này đã được tạo ra Mallet có thể có thể thực
hiện phân loại. Trong một cách sử dụng điển hình, chúng tôi chia các vectơ tính năng vào
một huấn luyện tập và kiểm trabộ. Một phân loại sẽ thu thập số liệu thống kê từ tập huấn
luyện và lấy được các thông số nội bộ từ những thống kê. Bộ phân loại sau đó sẽ áp dụng
những thông số để phân loại tập hợp kiểm chứng và đầu ra các phân loại.
vectors2classify --input data.vectors --training-portion 0.6 --num-trials 3

Sẽ ra các kết quả của ba cuộc thử nghiệm, mỗi một tách tàu thử nghiệm ngẫu nhiên, trong
đó 60% của các tài liệu được sử dụng để đào tạo, và 40% để thử nghiệm.
Sản lượng bình thường của vectors2classify bao gồm độ chính xác, độ lệch chuẩn và sai
số chuẩn cho các dữ liệu thử nghiệm đào tạo và, và một ma trận nhầm lẫn.
Ví dụ, lệnh
vectors2classify --input news2.vectors --trainer NaiveBayes --training-portion
0.6 --num-trials 2

sẽ, cho một danh sách dụ xây dựng từ ba

talk.politics

lớp học, một cái gì đó in như

sau:
-------------------- Trial 0
Trial
Trial
Trial
Trial

0
0

0
0

--------------------

Training NaiveBayesTrainer with 1800 instances
Training NaiveBayesTrainer finished
Trainer NaiveBayesTrainer training data accuracy= 0.9533333333333334
Trainer NaiveBayesTrainer Test Data Confusion Matrix

22


Khoa CNTT – Trường Đại Học Điện Lực

Confusion Matrix, row=true, column=predicted
label
0
1
2 |total
0
guns 382
. 18 |400
1 mideast 12 365 30 |407
2
misc 47 20 326 |393

accuracy=0.8941666666666667

Trial 0 Trainer NaiveBayesTrainer test data accuracy= 0.8941666666666667

-------------------- Trial 1

--------------------

Trial 1 Training NaiveBayesTrainer with 1800 instances
Trial 1 Training NaiveBayesTrainer finished
Trial 1 Trainer NaiveBayesTrainer training data accuracy= 0.9505555555555556
Trial 1 Trainer NaiveBayesTrainer Test Data Confusion Matrix
Confusion Matrix, row=true, column=predicted accuracy=0.9025
label
0
1
2 |total
0
guns 372
. 17 |389
1 mideast
5 376 19 |400
2
misc 58 18 335 |411
Trial 1 Trainer NaiveBayesTrainer test data accuracy= 0.9025
NaiveBayesTrainer
Summary. train accuracy mean = 0.9519444444444445 stddev =
0.001388888888888884 stderr = 9.82092751647979E-4
Summary. test accuracy mean = 0.8983333333333333 stddev = 0.004166666666666652
stderr = 0.002946278254943937

Việc lựa chọn các thống kê đào tạo có thể được chỉ định với
chọn. Báo cáo mặc định là tàu
chính xác


--report

tùy

--report: đào tạo nhầm lẫn: kiểm tra độ chính xác:

, mà in ra một ma trận nhầm lẫn và chính xác cho mỗi thử nghiệm đào tạo và

giá trị trung bình, độ lệch chuẩn, và sai số chuẩn của độ chính xác trên tất cả các thử
nghiệm.
Dạng tổng quát của một lựa chọn báo cáo là một tập dữ liệu: cặp số liệu thống kê,
nơi các tập dữ liệu là danh sách các trường hợp được báo cáo và là một trong

23


Khoa CNTT – Trường Đại Học Điện Lực

những tàu , xác nhận hoặc kiểm tra và thống kê là những thông tin mong muốn về danh sách
thẩm và là một trong nhầm

lẫn

, chính

xác

, f1 , hoặc thô . Trên mỗi thử nghiệm, danh


sách dụ đầu vào được partioned thành một đào tạo, thử nghiệm và xác nhận thiết lập. Đối
với mỗi bộ, bất kỳ sự kết hợp của các số liệu thống kê có thể được xuất ra. Các f1 thống
kê được báo cáo đối với một nhãn, với các quy định sau đây được một dấu "=" như sau:
vectors2classify --input news2.vectors --trainer NaiveBayes --training-portion
0.6 --report train:f1=mideast

sẽ tạo ra một dòng như sau ở đầu ra
/home/mccallum/20_newsgroups/talk.politics.misc/178939 misc misc:0.98
mideast:0.015 guns:0.005

Kết quả phân loại nguyên liệu, lựa chọn với các

raw

thống kê, được in như một loạt

các dòng văn bản mà nhìn một cái gì đó như thế này:
/home/mccallum/20_newsgroups/talk.politics.misc/178939 misc misc:0.98
mideast:0.015 guns:0.005

Đó là, một tập tin thử nghiệm trên mỗi dòng, bao gồm các lĩnh vực sau đây:
directory/filename TrueClass TopPredictedClass:score1 2ndPredictedClass:score2
...

Chúng ta đã thấy rằng (mặc định) đầu ra từ
vectors2classify --input news2.vectors --trainer NaiveBayes --training-portion
0.6 --num-trials 2

là giống như:
vectors2classify --input news2.vectors --trainer NaiveBayes --training-portion

0.6 --num-trials 2
--report train:confusion train:accuracy test:accuracy

24


Khoa CNTT – Trường Đại Học Điện Lực

Lưu ý rằng nhiều tùy chọn có thể được quy định trong một đơn

--report

tùy chọn Nhiều

tùy chọn --report có thể được chỉ định với các tác dụng tương tự. Các ví dụ tương tự với
nhiều --report tùy chọn là
vectors2classify --input news2.vectors --trainer NaiveBayes --training-portion
0.6 --num-trials 2 --report train:confusion --report train:accuracy

3.1. Xác định đào tạo và kiểm thử Sets
Trong trường hợp các văn bản thử nghiệm đã được bao gồm trong các tài liệu đào
tạo như là một phần của danh sách các vector, tập huấn luyện được xác định với -training-phần tùy chọn. Ví dụ,
vectors2classify --training-file train.vectors --testing-file test.vectors

Sẽ sử dụng một bộ tạo số giả ngẫu nhiên để chọn 0,6 của các tài liệu trong danh
sách vector đặc trưng và đặt chúng vào tập huấn luyện, sau đó đặt các tài liệu còn lại
trong tập kiểm tra.
Giá trị mặc định cho --training-phần là 1.0, chỉ ra rằng không có tài liệu được đặt
trong tập kiểm tra.
Một phần của vector có thể được đặt để xác nhận. Phần xác nhận được quy định

với tùy chọn --validation-phần. Ví dụ,
vectors2vectors --input news2.vectors --training-portion .6
--training-file train.vectors --testing-file test.vectors

25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×