Bạn có thể muốn xem xét bộ công cụ FACTORIE (http://github.com/factorie/factorie). Nó là một thư viện tổng quát cho các mô hình đồ họa và học tập tự động bao gồm một bộ các thành phần xử lý ngôn ngữ tự nhiên (tokenization, token normalization, phân tích hình thái, phân đoạn câu, gắn thẻ một phần lời nói, nhận dạng thực thể, phân tích phụ thuộc) tìm kiếm, cốt lõi).
Ngoài ra, nó được viết hoàn toàn bằng Scala và được phát hành theo Giấy phép Apache.
Tài liệu hiện đang thưa thớt nhưng sẽ cải thiện trong những tháng tới.
Ví dụ, một khi cài đặt Maven dựa trên được hoàn tất, bạn có thể gõ vào dòng lệnh:
bin/fac nlp --pos1 --parser1 --ner1
để khởi động một máy chủ NLP đa luồng socket lắng nghe. Sau đó truy vấn nó bằng đường ống văn bản đơn giản đến số socket của nó:
echo "Mr. Jones took a job at Google in New York. He and his Australian wife moved from New South Wales on 4/1/12." | nc localhost 3228
Kết quả là sau đó
1 1 Mr. NNP 2 nn O
2 2 Jones NNP 3 nsubj U-PER
3 3 took VBD 0 root O
4 4 a DT 5 det O
5 5 job NN 3 dobj O
6 6 at IN 3 prep O
7 7 Google NNP 6 pobj U-ORG
8 8 in IN 7 prep O
9 9 New NNP 10 nn B-LOC
10 10 York NNP 8 pobj L-LOC
11 11 . . 3 punct O
12 1 He PRP 6 nsubj O
13 2 and CC 1 cc O
14 3 his PRP$ 5 poss O
15 4 Australian JJ 5 amod U-MISC
16 5 wife NN 6 nsubj O
17 6 moved VBD 0 root O
18 7 from IN 6 prep O
19 8 New NNP 9 nn B-LOC
20 9 South NNP 10 nn I-LOC
21 10 Wales NNP 7 pobj L-LOC
22 11 on IN 6 prep O
23 12 4/1/12 NNP 11 pobj O
24 13 . . 6 punct O
Tất nhiên có một API chương trình đối với tất cả các chức năng này là tốt.
import cc.factorie._
import cc.factorie.app.nlp._
val doc = new Document("Education is the most powerful weapon which you can use to change the world.")
DocumentAnnotatorPipeline(pos.POS1).process(doc)
for (token <- doc.tokens)
println("%-10s %-5s".format(token.string, token.posLabel.categoryValue))
chí đầu ra:
Education NN
is VBZ
the DT
most RBS
powerful JJ
weapon NN
which WDT
you PRP
can MD
use VB
to TO
change VB
the DT
world NN
. .
Có những ràng buộc scala làm cho nó dễ dàng hơn! mất một chút công việc để cài đặt, nhưng sau đó toàn bộ điều đó được ngưng tụ thành một dòng duy nhất. Thư viện là [ở đây] (https://github.com/gangeli/CoreNLP-Scala) –