Mạng từ NLTK: Tìm từ đồng nghĩa từ Mạng từ NLTK trong Python
Mạng từ là gì?
Wordnet là trình đọc ngữ liệu NLTK, một cơ sở dữ liệu từ vựng cho tiếng Anh. Nó có thể được sử dụng để tìm nghĩa của từ, từ đồng nghĩa hoặc trái nghĩa. Người ta có thể định nghĩa nó như một từ điển tiếng Anh theo định hướng ngữ nghĩa. Nó được nhập bằng lệnh sau:
from nltk.corpus import wordnet as guru
Tìm từ đồng nghĩa từ NLTK WordNet trong Python
Số liệu thống kê cho thấy có 155287 từ và 117659 từ đồng nghĩa các bộ có trong WordNet tiếng Anh.
Có thể tìm thấy các phương pháp khác nhau có sẵn với WordNet bằng cách nhập dir(guru)
['_LazyCorpusLoader__args', '_LazyCorpusLoader__kwargs', '_LazyCorpusLoader__load', '_LazyCorpusLoader__name', '_LazyCorpusLoader__reader_cls', '__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', ' __ge__', '__getattr__', '__getattribute__', '__gt__', '__hash__', '__init__', '__le__', '__lt__', '__module__', '__name__', '__ne__', '__new__', '__reduce__' , '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__unicode__', '__weakref__', '_unload', 'subdir', 'unicode_repr']
Hãy để chúng tôi hiểu một số tính năng có sẵn với wordnet:
bộ đồng bộ: Nó còn được gọi là tập hợp từ đồng nghĩa hoặc tập hợp các từ đồng nghĩa. Hãy để chúng tôi kiểm tra một ví dụ
from nltk.corpus import wordnet syns = wordnet.synsets("dog") print(syns)
Đầu ra:
[Synset('dog.n.01'), Synset('frump.n.01'), Synset('dog.n.03'), Synset('cad.n.01'), Synset('frank.n.02'), Synset('pawl.n.01'), Synset('andiron.n.01'), Synset('chase.v.01')]
Quan hệ từ vựng: Đây là những quan hệ ngữ nghĩa có tính tương hỗ. Nếu có mối quan hệ giữa {x1,x2,…xn} và {y1,y2,…yn} thì cũng có mối quan hệ giữa {y1,y2,…yn} và {x1,x2,…xn}. Ví dụ: Từ đồng nghĩa là đối lập của từ trái nghĩa hoặc siêu từ và từ đồng nghĩa là loại khái niệm từ vựng.
Chúng ta hãy viết một chương trình sử dụng mãng xà để tìm từ đồng nghĩa và trái nghĩa của từ “hoạt động” bằng Wordnet.
from nltk.corpus import wordnet synonyms = [] antonyms = [] for syn in wordnet.synsets("active"): for l in syn.lemmas(): synonyms.append(l.name()) if l.antonyms(): antonyms.append(l.antonyms()[0].name()) print(set(synonyms)) print(set(antonyms))
Đầu ra của mã:
{'năng động', 'chiến đấu', 'sẵn sàng chiến đấu', 'active_voice', 'active_agent', 'tham gia', 'sống', 'hoạt động'} — Từ đồng nghĩa
{'stative', 'passive', 'im lặng', 'passive_voice', 'tuyệt chủng', 'không hoạt động', 'không hoạt động'} — Từ trái nghĩa
Giải thích mã
- Wordnet là một kho ngữ liệu nên nó được nhập từ ntlk.corpus
- Danh sách cả từ đồng nghĩa và trái nghĩa đều trống và sẽ được sử dụng để nối thêm
- Từ đồng nghĩa của từ hoạt động được tìm kiếm trong tập đồng nghĩa mô-đun và được thêm vào danh sách từ đồng nghĩa. Quá trình tương tự được lặp lại cho lần thứ hai.
- Đầu ra được in
Kết luận
WordNet là một cơ sở dữ liệu từ vựng đã được sử dụng bởi một số lượng lớn công cụ tìm kiếm. Từ WordNet, thông tin về một từ hoặc cụm từ nhất định có thể được tính toán như
- từ đồng nghĩa (những từ có nghĩa giống nhau)
- hypernyms (Thuật ngữ chung dùng để chỉ một loại đặc thù (tức là bữa ăn là bữa sáng), từ đồng âm (cơm là bữa ăn)
- từ đồng nghĩa (protein, carbohydrate là một phần của bữa ăn)
- từ đồng nghĩa (bữa ăn là một phần của lượng thức ăn hàng ngày)
WordNet cũng cung cấp thông tin về các thuật ngữ phối hợp, dẫn xuất, giác quan và hơn thế nữa. Nó được sử dụng để tìm sự tương đồng giữa hai từ bất kỳ. Nó cũng chứa thông tin về kết quả của từ liên quan. Nói tóm lại, người ta có thể coi nó là Từ điển hoặc Từ điển đồng nghĩa. Đi sâu hơn vào wordnet, nó được chia thành bốn mạng con như
- Danh từ
- Động từ
- Tính từ
- trạng từ
Nó có thể được sử dụng trong lĩnh vực trí tuệ nhân tạo để phân tích văn bản. Với sự trợ giúp của Wordnet, bạn có thể tạo kho văn bản của mình để kiểm tra chính tả, dịch ngôn ngữ, phát hiện thư rác và nhiều tính năng khác.
Theo cách tương tự, bạn có thể sử dụng kho dữ liệu này và tạo khuôn cho nó hoạt động một số chức năng động. Điều này giống như đã sẵn sàng để tạo kho ngữ liệu cho bạn. Bạn có thể sử dụng nó theo cách của bạn.