Trong loạt bài về Xử lý ngôn ngữ tự nhiên sử dụng Stanford CoreNLP (tham khảo tại đây), chúng ta đã viết một số chương trình sử dụng ngôn ngữ Java. Trong bài này chúng ta sẽ viết một chương trình để chạy thử CoreNLP trong Spark bằng ngôn ngữ Scala.

Trước hết ta tạo một Scala object với tên SparkCoreNLP và thêm các dependency sau vào file pom.xml (ngoài các dependency của Spark như trong bài trước).

Lưu ý: nếu có lỗi xảy ra trong việc import databicks spark-corenlp thì bạn có thể xóa dependency này và trực tiếp download .jar file tại đây rồi add vào Library của Project (chuột phải vào file jar rồi chọn Add as Library, nhấn OK)

Các hàm chức năng của spark-corenlp được định nghĩa tại com.databricks.spark.corenlp.functions với tất cả 11 hàm (cleanxml, tokenize, ssplit, pos, lemma, ner, depparse, coref, natlog, openie, sentiment). Các bạn có thể tham khảo chi tiết về các hàm tại đây. Trong bài này chúng ta sẽ chạy thử 7 hàm cơ bản (cleanxml, tokenize, ssplit, pos, lemma, ner và sentiment) trong Spark.

Trước hết ta tạo một DataFrame từ một đoạn dữ liệu xml như sau

Tiếp theo ta sử dụng hàm cleanxml để xóa bỏ tag xml và dùng hàm ssplit để tách từng câu như sau:

Chạy thử dòng lệnh trên ta được kết quả:

Để tách từ trong từng câu, ta sử dụng hàm tokenize như sau:

Tương tự ta sử dụng các hàm lemma, pos, ner, sentiment để lấy các thông tin cần thiết:

Như vậy ta đã hoàn thành chương trình chạy thử một số hàm cơ bản của CoreNLP trong Spark. Các bạn có thể tham khảo full code của chương trình dưới đây.

Tháng Mười Một 23, 2018
ITechSeeker