Trích xuất câu từ văn bản python

Trong hướng dẫn này, chúng tôi sẽ cố gắng tìm giải pháp cho Cách trích xuất từ ​​​​từ câu trong Python thông qua lập trình. Đoạn mã sau minh họa điều này

Show

sentence = "How are you feeling today"
sentence = sentence.split() # this returns list of words
# output = ["How", "are", "you", "feeling", "today"]

Các cách tiếp cận khác nhau để giải quyết vấn đề Cách trích xuất các từ trong câu trong Python được tóm tắt trong đoạn mã sau

string = "This is demo string"
words = string.split()
for word in words:
  print(word)

Sử dụng nhiều ví dụ, chúng tôi đã học cách giải quyết vấn đề Cách trích xuất từ ​​​​từ câu trong Python

Làm cách nào để bạn trích xuất một số từ nhất định trong một câu trong Python?

Sử dụng biểu thức chính quy để trích xuất bất kỳ từ cụ thể nào Chúng ta có thể sử dụng biểu thức chính quy trong python để trích xuất các từ cụ thể từ một chuỗi. Chúng ta có thể sử dụng phương thức search() từ mô-đun re để tìm lần xuất hiện đầu tiên của từ và sau đó chúng ta có thể lấy từ đó bằng cách cắt. 31-Mar-2021

Làm cách nào để trích xuất văn bản nhất định từ một chuỗi trong Python?

Trích xuất một chuỗi con từ một chuỗi trong Python (vị trí, biểu thức chính quy)

  • Trích xuất một chuỗi con bằng cách chỉ định vị trí và số lượng ký tự. Trích xuất một ký tự theo chỉ mục
  • Trích xuất một chuỗi con với các biểu thức chính quy. lại. tìm kiếm() , lại. tìm tất cả ()
  • Ví dụ về mẫu biểu thức chính quy. Các mẫu giống như ký tự đại diện

Làm cách nào để tìm một từ trong câu bằng Python?

String find() trong Python Chỉ cần gọi phương thức trên đối tượng chuỗi để tìm kiếm một chuỗi, như vậy. đối tượng. tìm (“tìm kiếm”). Phương thức find() tìm kiếm một chuỗi truy vấn và trả về vị trí ký tự nếu tìm thấy. Nếu không tìm thấy chuỗi, nó trả về -1

Làm cách nào để bạn trích xuất từ ​​đầu tiên trong một câu bằng Python?

Nhận từ đầu tiên trong chuỗi Python

  • string = "Trang web hướng dẫn"
  • all_words = chuỗi. tách ra()
  • first_word= all_words[0]
  • in(first_word)

Làm cách nào để tìm một phần của chuỗi trong Python?

Phương thức find() trong Python String trả về chỉ số thấp nhất hoặc lần xuất hiện đầu tiên của chuỗi con nếu nó được tìm thấy trong một chuỗi đã cho. Nếu không tìm thấy thì trả về -1. Thông số. phụ. Xâu con cần tìm trong xâu đã cho. 18-Aug-2022

Làm cách nào để trích xuất một từ từ một chuỗi trong Khung dữ liệu Pandas?

  • Làm thế nào về việc trích xuất nhiều hơn một từ từ word_list ?
  • @GurselKaracor bạn có thể xem findall hoặc extractall
  • trích xuất = df['TEXT']. str. tìm tất cả ('(' + '. '. tham gia (word_list) + ')', cờ = lại. IGNORECASE) df['EXTRACT'] = đã trích xuất. str. tham gia(',')

Làm cách nào để bạn trích xuất các phần cụ thể của tệp văn bản trong Python?

Cách trích xuất các phần cụ thể của tệp văn bản bằng Python

  • Đảm bảo bạn đang sử dụng Python 3
  • Đọc dữ liệu từ tệp văn bản
  • Sử dụng "với mở"
  • Đọc các tệp văn bản theo từng dòng
  • Lưu trữ dữ liệu văn bản trong một biến
  • Tìm kiếm văn bản cho một chuỗi con
  • Kết hợp các biểu thức chính quy
  • Để tất cả chúng cùng nhau

Bạn có thể cắt một chuỗi trong Python không?

Chuỗi Python hỗ trợ cắt để tạo chuỗi con. Lưu ý rằng chuỗi Python là bất biến, việc cắt sẽ tạo ra một chuỗi con mới từ chuỗi nguồn và chuỗi gốc không thay đổi. 03-Aug-2022

Làm cách nào để tìm một từ trong một chuỗi?

Để tìm một từ trong chuỗi, chúng ta sử dụng các phương thức indexOf() và contains() của lớp String. Phương thức indexOf() được sử dụng để tìm chỉ mục của chuỗi con đã chỉ định trong chuỗi hiện tại. Nó trả về một số nguyên dương dưới dạng chỉ mục nếu tìm thấy chuỗi con khác trả về -1

Làm thế nào để bạn tìm thấy một chuỗi trong một câu?

Nếu bạn có chuỗi. string sample = "Nếu bạn biết điều gì tốt cho mình, bạn sẽ đóng cửa lại. "; Và bạn muốn tìm xem nó nằm ở đâu trong câu, bạn có thể sử dụng phương thức IndexOf. Câu trả lời không phải -1 có nghĩa là chuỗi đã được định vị. 17-Mar-2011

Tôi là một người mê sách - Tôi thích đọc sách trong thời gian rảnh rỗi và trích xuất càng nhiều kiến ​​thức càng tốt. Nhưng trong thời đại quá tải thông tin ngày nay, cách chúng ta đọc nội dung đã thay đổi. Hầu hết chúng ta có xu hướng bỏ qua toàn bộ văn bản, cho dù đó là một bài báo, một cuốn sách hay một hướng dẫn – và chỉ đọc những đoạn văn bản có liên quan

Hãy để tôi chia sẻ một ví dụ cá nhân xung quanh điều này. Gần đây, tôi đang đọc một bài báo về chuyến công du sắp tới của Ấn Độ tới Úc thì tôi nhận ra rằng mình đã đọc đến cuối bài báo nhanh như thế nào. Tôi đọc lướt qua hầu hết nó, chỉ đọc các tiêu đề và một vài điều về Virat Kohli. Đây là một đoạn từ bài viết

Trích xuất câu từ văn bản python

Bạn có thể đoán tại sao một số từ được đánh dấu màu đỏ không? . Và điều này khiến tôi phải suy nghĩ - với tư cách là một người trong lĩnh vực Xử lý ngôn ngữ tự nhiên (NLP), liệu tôi có thể xây dựng một mô hình có thể trích xuất các phần liên quan này từ bất kỳ văn bản cụ thể nào không?

Hóa ra câu trả lời là có – nhờ vào một khái niệm gọi là Khai thác thông tin. Chúng ta sẽ tìm hiểu thêm về khai thác thông tin là gì sau, nhưng đủ để nói rằng nó thực sự giúp tôi tinh chỉnh các kỹ năng NLP của mình và xây dựng một mô hình khai thác mạnh mẽ mà tôi có thể sử dụng để phân tích cú pháp qua hầu hết các bài báo

Trong bài viết này, tôi trình bày với các bạn những điều tôi học được từ khi tôi làm việc trong một dự án Khai thác thông tin. Đây là một hướng dẫn toàn diện, vì vậy hãy chuẩn bị sẵn sàng cho chuyến đi và tận hưởng hành trình được cung cấp năng lượng bởi NLP

Nếu bạn chưa từng đọc về bất kỳ khái niệm NLP nào trước đây, tôi khuyên bạn nên bắt đầu tham gia khóa học miễn phí dưới đây

Mục lục

  • Khai thác thông tin là gì?
  • Khai thác thông tin hoạt động như thế nào?
  • Làm quen với Bộ dữ liệu NLP
  • Tiền xử lý văn bản lời nói
  • Tách văn bản của chúng tôi thành các câu
  • Khai thác thông tin bằng SpaCy
  • Khai thác thông tin #1 – Tìm kiếm đề cập đến Thủ tướng trong bài phát biểu
  • Khai thác thông tin #2 – Tìm kiếm sáng kiến
  • Tìm mẫu trong bài phát biểu
  • Khai thác thông tin #3- Quy tắc về cụm Danh từ-Động từ-Danh từ
  • Khai thác thông tin #4 – Quy tắc về cụm tính từ-danh từ
  • Khai thác thông tin #5 – Quy tắc về giới từ

Khai thác thông tin là gì?

Dữ liệu văn bản chứa rất nhiều thông tin nhưng không phải tất cả thông tin đều quan trọng đối với bạn. Chúng tôi có thể đang tìm kiếm tên của các thực thể, những người khác muốn trích xuất các mối quan hệ cụ thể giữa các thực thể đó. Ý định của chúng tôi khác nhau tùy theo yêu cầu của chúng tôi

Hãy tưởng tượng bạn phải xem qua tất cả các tài liệu pháp lý để tìm quyền ưu tiên hợp pháp nhằm xác thực trường hợp hiện tại của bạn. Hoặc phải đi qua tất cả các tài liệu nghiên cứu để tìm thông tin liên quan để chữa bệnh. Có nhiều ví dụ khác như thu thập sơ yếu lý lịch, phân tích phương tiện, quét email, v.v.

Nhưng chỉ cần tưởng tượng bạn phải xem qua tất cả dữ liệu văn bản theo cách thủ công và trích xuất thông tin phù hợp nhất. Rõ ràng, đó là một trận chiến khó khăn và thậm chí bạn có thể bỏ qua một số thông tin quan trọng

Trích xuất câu từ văn bản python

Đối với bất kỳ ai đang cố gắng phân tích dữ liệu văn bản, nhiệm vụ khó khăn không phải là tìm đúng tài liệu mà là tìm đúng thông tin từ những tài liệu này. Hiểu mối quan hệ giữa các thực thể, hiểu các sự kiện đã diễn ra như thế nào hoặc chỉ đơn giản là tìm ra những viên ngọc thông tin ẩn giấu, rõ ràng là điều mà bất kỳ ai cũng đang tìm kiếm khi xem qua một đoạn văn bản.

Do đó, việc tìm ra một cách tự động trích xuất thông tin từ dữ liệu văn bản và trình bày nó theo cách có cấu trúc sẽ giúp chúng ta gặt hái được rất nhiều lợi ích và giảm đáng kể lượng thời gian chúng ta phải dành để đọc lướt qua các tài liệu văn bản. Đây chính xác là những gì khai thác thông tin phấn đấu để đạt được

Nhiệm vụ trích xuất thông tin (IE) liên quan đến việc trích xuất thông tin có ý nghĩa từ dữ liệu văn bản phi cấu trúc và trình bày nó ở định dạng có cấu trúc

Sử dụng trích xuất thông tin, chúng tôi có thể truy xuất thông tin được xác định trước như tên của một người, vị trí của một tổ chức hoặc xác định mối quan hệ giữa các thực thể và lưu thông tin này ở định dạng có cấu trúc như cơ sở dữ liệu

Để tôi cho bạn xem một ví dụ khác mà tôi đã lấy từ một bài báo về môn cricket

Trích xuất câu từ văn bản python

Chúng tôi có thể trích xuất các thông tin sau từ văn bản

  • Quốc gia – Ấn Độ, Thuyền trưởng – Virat Kohli
  • Người dơi – Virat Kohli, Chạy – 2
  • Vận động viên ném bóng – Kyle Jamieson
  • Địa điểm thi đấu – Wellington
  • Loạt trận – New Zealand
  • Điểm nổi bật của sê-ri – năm mươi đơn, 8 hiệp, 3 định dạng

Điều này cho phép chúng tôi gặt hái những lợi ích của các công cụ truy vấn mạnh mẽ như SQL để phân tích sâu hơn. Việc tạo ra dữ liệu có cấu trúc như vậy bằng cách sử dụng khai thác thông tin sẽ không chỉ giúp chúng tôi phân tích tài liệu tốt hơn mà còn giúp chúng tôi hiểu được các mối quan hệ tiềm ẩn trong văn bản

Khai thác thông tin hoạt động như thế nào?

Do tính chất thất thường của dữ liệu văn bản thay đổi tùy thuộc vào tác giả hoặc ngữ cảnh, Khai thác thông tin có vẻ như là một nhiệm vụ khó khăn. Nhưng không nhất thiết phải như vậy

Chúng ta đều biết rằng các câu được tạo thành từ các từ thuộc các Phần khác nhau của Bài phát biểu (POS). Có tám POS khác nhau bằng tiếng Anh. danh từ, đại từ, động từ, tính từ, trạng từ, giới từ, kết hợp và giao điểm

POS xác định cách một từ cụ thể hoạt động theo nghĩa trong một câu nhất định. Ví dụ: lấy từ “đúng”. Trong câu “Cậu bé được thưởng sô cô la vì trả lời đúng”, “đúng” được dùng như một tính từ. Trong khi đó, trong câu “Bạn có quyền nói bất cứ điều gì bạn muốn”, “right” được coi như một danh từ.

Điều này cho thấy thẻ POS của một từ mang rất nhiều ý nghĩa khi hiểu nghĩa của một câu. Và chúng ta có thể tận dụng nó để trích xuất thông tin có ý nghĩa từ văn bản của mình

Hãy lấy một ví dụ để hiểu điều này. Chúng tôi sẽ sử dụng thư viện spaCy phổ biến tại đây

Mã Python

Chúng tôi có thể dễ dàng xác định thẻ POS của tất cả các từ trong câu. Nhưng nó giúp ích như thế nào trong Khai thác thông tin?

Chà, nếu chúng ta muốn trích xuất các danh từ trong câu, chúng ta có thể xem các thẻ POS của các từ/mã thông báo trong câu, sử dụng thuộc tính. pos_ và giải nén chúng cho phù hợp

Trích xuất câu từ văn bản python

Thật dễ dàng để trích xuất các từ dựa trên thẻ POS của họ. Nhưng đôi khi trích xuất thông tin hoàn toàn dựa trên các thẻ POS là không đủ. Hãy nhìn vào câu dưới đây

Trích xuất câu từ văn bản python

Nếu tôi muốn trích xuất chủ ngữ và tân ngữ từ một câu, tôi không thể làm điều đó dựa trên các thẻ POS của chúng. Đối với điều đó, tôi cần xem xét những từ này có liên quan với nhau như thế nào. Chúng được gọi là phụ thuộc

Chúng tôi có thể sử dụng trình hiển thị thay thế của spaCy để hiển thị các phụ thuộc từ theo cách đồ họa

Trích xuất câu từ văn bản python

Tuyệt đấy. Đồ thị có hướng này được gọi là đồ thị phụ thuộc. Nó thể hiện mối quan hệ giữa các từ khác nhau của một câu

Mỗi từ là một nút trong biểu đồ Phụ thuộc. Mối quan hệ giữa các từ được biểu thị bằng các cạnh. Ví dụ: “The” là một từ hạn định ở đây, “children” là chủ ngữ của câu, “biscuits” là tân ngữ của câu và “cream” là một từ ghép cung cấp cho chúng ta thêm thông tin về đối tượng đó.

Các mũi tên mang rất nhiều ý nghĩa ở đây

  • Đầu mũi tên chỉ các từ phụ thuộc vào từ được chỉ bởi nguồn gốc của mũi tên
  • Cái trước được gọi là nút con của cái sau. Ví dụ: “trẻ em” là nút con của “tình yêu”
  • Từ không có mũi tên chỉ tới được gọi là nút gốc của câu

Hãy xem cách chúng ta có thể trích xuất chủ đề và đối tượng từ câu. Giống như chúng tôi có một thuộc tính cho POS trong mã thông báo SpaCy, tương tự, chúng tôi có một thuộc tính để trích xuất phần phụ thuộc của mã thông báo được biểu thị bằng dep_

Trích xuất câu từ văn bản python

thì đấy. Chúng tôi có chủ đề và đối tượng của câu của chúng tôi

Sử dụng thẻ POS và thẻ Phụ thuộc, chúng ta có thể tìm kiếm mối quan hệ giữa các thực thể khác nhau trong một câu. Ví dụ, trong câu “Con mèo đậu trên bệ cửa sổ“, chúng ta có chủ ngữ là “con mèo”, tân ngữ là “bệ cửa sổ” được liên kết bởi giới từ “trên”. Chúng tôi có thể tìm kiếm các mối quan hệ như vậy và nhiều hơn nữa để trích xuất thông tin có ý nghĩa từ dữ liệu văn bản của chúng tôi

Tôi khuyên bạn nên xem qua hướng dẫn tuyệt vời này giải thích chi tiết về Khai thác thông tin với rất nhiều ví dụ

Chúng ta sẽ đi đâu từ đây?

Chúng tôi đã nói ngắn gọn về lý thuyết liên quan đến Khai thác thông tin mà tôi tin rằng điều quan trọng là phải hiểu trước khi đi vào mấu chốt của bài viết này

“Một chút thực hành thường có giá trị hơn một tấn lý thuyết. ” –E. F. Schumacher

Trong các phần tiếp theo, tôi sẽ khám phá một tập dữ liệu văn bản và áp dụng kỹ thuật trích xuất thông tin để lấy một số thông tin quan trọng, hiểu cấu trúc của câu và mối quan hệ giữa các thực thể

Vì vậy, không cần phải quảng cáo thêm, hãy bắt đầu bẻ mã

Làm quen với Tập dữ liệu văn bản

Bộ dữ liệu mà chúng tôi sẽ làm việc với là United Nations General Debate Corpus. Nó chứa các bài phát biểu của đại diện của tất cả các quốc gia thành viên từ năm 1970 đến 2018 tại Cuộc tranh luận chung của phiên họp thường niên của Đại hội đồng Liên hợp quốc

Nhưng chúng tôi sẽ lấy một tập hợp con của tập dữ liệu này và làm việc với các bài phát biểu của Ấn Độ tại các cuộc tranh luận này. Điều này sẽ cho phép chúng tôi đi đúng hướng và hiểu rõ hơn về nhiệm vụ tìm hiểu Khai thác thông tin. Điều này để lại cho chúng tôi 49 bài phát biểu của Ấn Độ trong những năm qua, mỗi bài phát biểu từ bất kỳ nơi nào trong khoảng từ 2000 đến 6000+ từ

Đã nói rằng, chúng ta hãy xem tập dữ liệu của chúng tôi

Trích xuất câu từ văn bản python

Tôi sẽ in ảnh chụp nhanh của một trong các bài phát biểu để cho bạn biết dữ liệu trông như thế nào

Trích xuất câu từ văn bản python

Bây giờ hãy bắt đầu làm việc với tập dữ liệu của chúng tôi

Tiền xử lý văn bản lời nói

Trước tiên, chúng ta cần làm sạch dữ liệu văn bản của mình. Khi xem lại một vài bài phát biểu, tôi thấy mỗi đoạn trong bài phát biểu đều được đánh số để nhận dạng rõ ràng. Rõ ràng là có các ký tự không mong muốn như ký tự dòng mới, dấu gạch nối, lời chào và dấu nháy đơn, giống như trong bất kỳ tập dữ liệu văn bản nào khác

Nhưng một thông tin độc đáo và không mong muốn khác hiện diện là các tham chiếu được thực hiện trong mỗi bài phát biểu cho các tài liệu khác. Chúng tôi rõ ràng cũng không muốn điều đó

Tôi đã viết một chức năng đơn giản để làm sạch các bài phát biểu. Một điểm quan trọng ở đây là tôi đã không sử dụng từ vựng hoặc thay đổi các từ thành chữ thường vì nó có khả năng thay đổi thẻ POS của từ đó. Chúng tôi chắc chắn không muốn làm điều đó như bạn sẽ thấy trong các phần phụ sắp tới

Phải, bây giờ chúng ta đã có bài phát biểu được làm sạch tối thiểu, chúng ta có thể chia nó thành các câu riêng biệt

Tách bài phát biểu thành các câu khác nhau

Chia bài phát biểu của chúng tôi thành các câu riêng biệt sẽ cho phép chúng tôi trích xuất thông tin từ mỗi câu. Sau này, chúng ta có thể kết hợp nó để lấy thông tin tích lũy cho bất kỳ năm cụ thể nào

Cuối cùng, chúng ta có thể tạo một khung dữ liệu chứa các câu từ các năm khác nhau

Trích xuất câu từ văn bản python

Sau khi thực hiện thao tác này ta có 7150 câu. Xem qua chúng và trích xuất thông tin theo cách thủ công sẽ là một nhiệm vụ khó khăn. Đó là lý do tại sao chúng tôi đang xem xét Khai thác thông tin bằng các kỹ thuật NLP

Khai thác thông tin bằng SpaCy

Bây giờ, chúng ta có thể bắt đầu thực hiện nhiệm vụ Khai thác thông tin. Chúng tôi sẽ sử dụng thư viện spaCy để làm việc với dữ liệu văn bản. Nó có tất cả các công cụ cần thiết mà chúng tôi có thể khai thác cho tất cả các nhiệm vụ chúng tôi cần để khai thác thông tin

Hãy để tôi nhập các mô-đun SpaCy có liên quan mà chúng tôi sẽ yêu cầu cho nhiệm vụ phía trước

Chúng ta sẽ cần lớp spaCy Matcher để tạo mẫu khớp các cụm từ trong văn bản. Chúng tôi cũng sẽ yêu cầu mô-đun displaCy để hiển thị biểu đồ phụ thuộc của các câu

Thư viện visualise_spacy_tree sẽ cần thiết để tạo cấu trúc dạng cây từ biểu đồ Phụ thuộc. Điều này giúp hiển thị biểu đồ theo cách tốt hơn. Cuối cùng, IPython Image và các lớp hiển thị được yêu cầu để xuất cây

Nhưng bạn không cần phải lo lắng về những điều này quá nhiều. Nó sẽ trở nên rõ ràng khi bạn nhìn vào mã

Trích xuất thông tin #1 – Tìm kiếm đề cập đến Thủ tướng trong bài phát biểu

Khi thực hiện các tác vụ trích xuất thông tin, điều quan trọng là phải xem qua một tập hợp con của tập dữ liệu theo cách thủ công để hiểu văn bản trông như thế nào và xác định xem có điều gì thu hút sự chú ý của bạn ngay từ cái nhìn đầu tiên không. Lần đầu tiên xem lại các bài phát biểu, tôi thấy nhiều bài đề cập đến những gì Thủ tướng đã nói, suy nghĩ hoặc đạt được trong quá khứ

Chúng tôi biết rằng một đất nước chẳng là gì nếu không có người lãnh đạo. Đích đến của một quốc gia nói chung là kết quả của sự hướng dẫn tài tình của người lãnh đạo quốc gia đó. Do đó, tôi tin rằng điều quan trọng là trích xuất những câu đó từ các bài phát biểu đề cập đến các Thủ tướng Ấn Độ, đồng thời cố gắng hiểu suy nghĩ và quan điểm của họ, đồng thời cố gắng làm sáng tỏ bất kỳ niềm tin chung hoặc khác biệt nào trong những năm qua

Để đạt được nhiệm vụ này, tôi đã sử dụng lớp Matcher của SpaCy. Nó cho phép chúng tôi khớp một chuỗi các từ dựa trên các mẫu nhất định. Đối với nhiệm vụ hiện tại, chúng tôi biết rằng bất cứ khi nào một Thủ tướng được nhắc đến trong bài phát biểu, thì đó sẽ là một trong những cách sau

  • Thủ tướng của [Quốc gia] …
  • Thủ tướng [Tên] …

Sử dụng sự hiểu biết chung này, chúng ta có thể đưa ra một mô hình

Trích xuất câu từ văn bản python

Hãy để tôi hướng dẫn bạn qua mô hình này

  • Ở đây, mỗi từ điển trong danh sách khớp với một từ duy nhất
  • Từ điển thứ nhất và thứ hai phù hợp với từ khóa “Thủ tướng” bất kể nó có viết hoa hay không, đó là lý do tại sao tôi đưa vào từ khóa “THẤP”
  • Từ điển thứ ba phù hợp với một từ là một giới từ. Những gì tôi đang tìm kiếm ở đây là từ "của". Bây giờ, như đã thảo luận trước đây, nó có thể có hoặc không có trong mẫu, do đó, một khóa bổ sung, “OP” hoặc tùy chọn, được đề cập để chỉ ra rằng
  • Cuối cùng, từ điển cuối cùng trong mẫu phải là một danh từ riêng. Đây có thể là tên của quốc gia hoặc tên của thủ tướng
  • Các từ khóa phù hợp phải liên tục nếu không mẫu sẽ không khớp với cụm từ

Dưới đây là một số câu mẫu từ năm 1989 phù hợp với mẫu của chúng tôi

Trích xuất câu từ văn bản python

Bây giờ, vì chỉ có 58 câu trong tổng số 7150 câu đưa ra kết quả khớp với mẫu của chúng tôi, nên tôi đã tóm tắt thông tin liên quan từ các kết quả này tại đây

  • Thủ tướng Indira Gandhi và Thủ tướng Jawaharlal Nehru tin tưởng sẽ hợp tác cùng nhau trên tinh thần đoàn kết và tuân thủ các nguyên tắc của LHQ
  • Thủ tướng Indira Gandhi tin tưởng vào việc đạt được sự cân bằng giữa sản xuất và tiêu dùng toàn cầu. Bà đưa ra các chính sách dành riêng cho việc tái thiết quốc gia và củng cố hệ thống chính trị thế tục và đa nguyên
  • Thủ tướng Indira Gandhi nhấn mạnh Ấn Độ không can thiệp vào công việc nội bộ của nước khác. Tuy nhiên, quan điểm về chính sách đối ngoại này đã thay đổi hoàn toàn dưới thời Thủ tướng Rajiv Gandhi khi ông ký một thỏa thuận với Thủ tướng Sri Lanka mang lại hòa bình cho Sri Lanka
  • Cả Thủ tướng Indira Gandhi và Thủ tướng Rajiv Gandhi đều tin tưởng vào mối liên hệ giữa phát triển kinh tế và bảo vệ môi trường
  • Thủ tướng Rajiv Gandhi ủng hộ giải trừ vũ khí hạt nhân, niềm tin đã được Ấn Độ duy trì trong nhiều năm
  • Ấn Độ, dưới các đời Thủ tướng khác nhau, luôn mở rộng bàn tay hòa bình với Pakistan trong nhiều năm qua
  • Thủ tướng Narendra Modi tin rằng trao quyền kinh tế và nâng cao vị thế của bất kỳ quốc gia nào đều liên quan đến việc trao quyền cho phụ nữ của quốc gia đó
  • Thủ tướng Narendra Modi đã đưa ra một số kế hoạch sẽ giúp Ấn Độ đạt được các mục tiêu SGD của mình

Sử dụng khai thác thông tin, chúng tôi chỉ có thể cô lập một vài câu mà chúng tôi yêu cầu đã mang lại cho chúng tôi kết quả tối đa

Khai thác thông tin #2 – Tìm sáng kiến

Điều thú vị thứ hai mà tôi nhận thấy khi xem qua các bài phát biểu là có rất nhiều sáng kiến, kế hoạch, thỏa thuận, hội nghị, chương trình, v.v. đã được đề cập trong các bài phát biểu. Ví dụ: 'Thỏa thuận Paris', 'Thỏa thuận Simla', 'Hội nghị về Hội đồng Bảo an', 'Hội nghị các nước không liên kết', 'Liên minh năng lượng mặt trời quốc tế', 'Sáng kiến ​​kỹ năng của Ấn Độ', v.v.

Trích xuất những điều này sẽ cho chúng ta ý tưởng về những ưu tiên của Ấn Độ là gì và liệu có một khuôn mẫu nào giải thích tại sao chúng được đề cập khá thường xuyên trong các bài phát biểu hay không

Tôi sẽ đề cập đến tất cả các đề án, sáng kiến, hội nghị, chương trình, v.v. từ khóa như sáng kiến

Để trích xuất các sáng kiến ​​​​từ văn bản, điều đầu tiên tôi sẽ làm là xác định những câu nói về các sáng kiến. Vì vậy, tôi sẽ sử dụng biểu thức chính quy đơn giản để chỉ chọn những câu có chứa từ khóa 'sáng kiến', 'kế hoạch', 'thỏa thuận', v.v. Điều này sẽ làm giảm tìm kiếm của chúng tôi cho mẫu sáng kiến ​​mà chúng tôi đang tìm kiếm

Bây giờ, bạn có thể nghĩ rằng nhiệm vụ của chúng tôi đã hoàn thành ở đây vì chúng tôi đã xác định được các câu. Chúng ta có thể dễ dàng tra cứu và xác định những gì đang được nói đến trong những câu này. Nhưng, hãy nghĩ về nó, không phải tất cả những thứ này sẽ chứa tên sáng kiến. Một số trong số này có thể nói chung về các sáng kiến ​​nhưng có thể không có tên sáng kiến ​​nào trong đó

Vì vậy, chúng ta cần đưa ra một giải pháp tốt hơn là chỉ trích những câu chứa tên sáng kiến. Vì vậy, một lần nữa, tôi sẽ sử dụng spaCy Matcher để đưa ra một mẫu phù hợp với những sáng kiến ​​này

Hãy xem các câu ví dụ sau và xem liệu bạn có thể nghĩ ra một mẫu để rút ra những sáng kiến ​​này không

Trích xuất câu từ văn bản python

Như bạn có thể nhận thấy, tên sáng kiến ​​là một danh từ riêng bắt đầu bằng một từ hạn định và kết thúc bằng 'sáng kiến'/'chương trình'/'thỏa thuận', v.v. từ cuối cùng. Nó cũng bao gồm một giới từ không thường xuyên ở giữa. Tôi cũng nhận thấy rằng hầu hết các tên sáng kiến ​​đều dài từ hai đến năm từ. Ghi nhớ điều này, tôi đã nghĩ ra mẫu sau để khớp tên sáng kiến

Chúng tôi có 62 câu phù hợp với mẫu của chúng tôi – không tệ. Hãy nhìn vào sản lượng từ năm 2018

Trích xuất câu từ văn bản python

Nhưng một điều tôi phải chỉ ra ở đây là có nhiều sáng kiến ​​hơn trong các bài phát biểu không phù hợp với khuôn mẫu của chúng tôi. Ví dụ, trong năm 2018, cũng có những sáng kiến ​​khác như “MUDRA”, “Ujjwala”, “Thỏa thuận Paris”, v.v. Vì vậy, có một cách tốt hơn để giải nén chúng?

Hãy nhớ cách chúng tôi xem xét các phụ thuộc ở đầu bài viết? . Nhưng trước khi đưa ra quy tắc, bạn cần hiểu cấu trúc của một câu như thế nào, khi đó bạn mới có thể đưa ra quy tắc chung để rút ra thông tin liên quan

Để hiểu cấu trúc của câu, tôi sẽ in biểu đồ phụ thuộc của một ví dụ mẫu nhưng theo kiểu cây mang lại trực giác tốt hơn về cấu trúc. Có một cái nhìn dưới đây

Trích xuất câu từ văn bản python

Xem cách 'Ujjwala' là nút con của 'chương trình'. Hãy xem một ví dụ khác

Trích xuất câu từ văn bản python

Lưu ý cách cấu trúc của 'Liên minh năng lượng mặt trời quốc tế'

Bây giờ bạn hẳn đã có ý tưởng rằng tên sáng kiến ​​thường là con của các nút chứa các từ như 'sáng kiến', 'chương trình', v.v. Dựa trên kiến ​​thức này, chúng ta có thể phát triển quy tắc của riêng mình

Quy tắc tôi đang đề xuất khá đơn giản. Hãy để tôi hướng dẫn bạn qua nó

  • Tôi sẽ tìm kiếm các mã thông báo trong các câu có chứa từ khóa sáng kiến ​​của tôi
  • Sau đó, tôi sẽ xem xét cây con của nó (hoặc các từ phụ thuộc vào nó) bằng mã thông báo. cây con và chỉ trích xuất những nút/từ là danh từ riêng, vì chúng rất có thể sẽ chứa tên của sáng kiến

Lần này chúng tôi khớp 282 mục. Đó là một cải tiến đáng kể so với kết quả trước đó. Cùng xem lại sản lượng năm 2018 và xem lần này chúng ta có làm tốt hơn không

Trích xuất câu từ văn bản python

Trong số hơn 7000 câu, chúng tôi có thể giảm xuống chỉ còn 282 câu nói về các sáng kiến. Tôi lặp lại các đầu ra này và dưới đây là cách tôi tóm tắt đầu ra

  • Có rất nhiều sáng kiến ​​hoặc kế hoạch quốc tế khác nhau mà Ấn Độ đã đề cập trong các bài phát biểu của mình. Điều này cho thấy Ấn Độ là một thành viên tích cực của cộng đồng quốc tế hướng tới xây dựng một tương lai tốt đẹp hơn bằng cách giải quyết các vấn đề thông qua các sáng kiến ​​này
  • Một điểm khác cần nhấn mạnh ở đây là các sáng kiến ​​được đề cập trong những năm đầu tiên đã tập trung hơn vào những sáng kiến ​​mà cộng đồng quốc tế quan tâm. Tuy nhiên, trong thời gian gần đây, đặc biệt là sau năm 2014, rất nhiều sáng kiến ​​trong nước đã được đề cập trong các bài phát biểu như ‘Ayushman Bharat’, ‘Pradhan Mantri Jan Dhan Yojana’, v.v. Điều này cho thấy một sự thay đổi trong cách quốc gia nhìn nhận vai trò của mình trong cộng đồng. Bằng cách đề cập đến nhiều sáng kiến ​​​​trong nước, Ấn Độ đã bắt đầu đưa nhiều công việc trong nước hơn ra trước cộng đồng quốc tế để chứng kiến ​​và thậm chí có thể đi theo bước chân của họ.

Phải nói rằng, kết quả chắc chắn không hoàn hảo. Có những trường hợp những từ không mong muốn cũng được trích xuất cùng với tên sáng kiến. Nhưng kết quả thu được bằng cách tạo các quy tắc của riêng chúng tôi chắc chắn tốt hơn kết quả thu được bằng cách sử dụng trình so khớp mẫu của SpaCy. Điều này cho thấy sự linh hoạt mà chúng ta có thể đạt được bằng cách đưa ra các quy tắc của riêng mình

Tìm các mẫu trong bài phát biểu

Cho đến nay, chúng tôi chỉ trích xuất thông tin phù hợp với con mắt phân tích của chúng tôi khi chúng tôi lướt qua dữ liệu. Nhưng có bất kỳ thông tin nào khác ẩn trong bộ dữ liệu của chúng tôi không?

Nhưng trước đó, tôi muốn chỉ ra hai điều

Đầu tiên, khi chúng ta cố gắng hiểu cấu trúc của bài phát biểu, chúng ta không thể xem toàn bộ bài phát biểu, điều đó sẽ mất vô tận và thời gian là điều cốt yếu ở đây. Thay vào đó, những gì chúng ta sẽ làm là xem xét các câu ngẫu nhiên từ bộ dữ liệu và sau đó, dựa trên cấu trúc của chúng, cố gắng đưa ra các quy tắc chung để trích xuất thông tin

Nhưng làm thế nào để chúng tôi kiểm tra tính hợp lệ của các quy tắc này? . Không phải tất cả các quy tắc mà chúng tôi đưa ra sẽ mang lại kết quả khả quan. Vì vậy, để lọc ra các quy tắc không liên quan, chúng ta có thể xem xét tỷ lệ phần trăm các câu phù hợp với quy tắc của chúng ta trong số tất cả các câu. Điều này sẽ cho chúng ta một ý tưởng hợp lý về việc quy tắc đang hoạt động tốt như thế nào và liệu trên thực tế có bất kỳ cấu trúc chung nào như vậy trong kho văn bản hay không.

Một điểm rất quan trọng khác cần được nhấn mạnh ở đây là bất kỳ ngữ liệu nào cũng nhất định chứa các câu phức dài. Làm việc với những câu này để thử và hiểu cấu trúc của chúng sẽ là một nhiệm vụ rất khó khăn. Vì vậy, chúng ta sẽ xem xét các câu nhỏ hơn. Điều này sẽ cho chúng ta cơ hội hiểu rõ hơn về cấu trúc của chúng. Vậy con số kỳ diệu là gì?

Trích xuất câu từ văn bản python

Nhìn vào histogram có thể thấy hầu hết các câu đều dao động từ 15-20 từ. Vì vậy, tôi sẽ làm việc với các câu chứa không quá 15 từ

Bây giờ, hãy viết một hàm đơn giản sẽ tạo các câu ngẫu nhiên từ khung dữ liệu này

Cuối cùng, hãy tạo một hàm để đánh giá kết quả của quy tắc của chúng ta

Được rồi, chúng ta hãy bắt tay vào công việc đặt ra một số quy tắc

Trích xuất thông tin #3 – Quy tắc về cụm danh từ-động từ-danh từ

Khi bạn nhìn vào một câu, nó thường chứa chủ ngữ (danh từ), hành động (động từ) và tân ngữ (danh từ). Phần còn lại của các từ chỉ ở đó để cung cấp cho chúng tôi thông tin bổ sung về các thực thể. Do đó, chúng ta có thể tận dụng cấu trúc cơ bản này để trích xuất các bit thông tin chính từ câu. Lấy ví dụ câu sau

Trích xuất câu từ văn bản python

Điều gì sẽ được rút ra từ câu mẫu này dựa trên quy tắc là – “các quốc gia phải đối mặt với các mối đe dọa”. Điều này sẽ cho chúng ta một ý tưởng hợp lý về những gì câu đang cố nói

Vì vậy, hãy xem quy tắc này công bằng như thế nào với những gì chúng tôi áp dụng nó đối với các câu ngắn mà chúng tôi đang làm việc với

Chúng tôi đang nhận được hơn 20% mẫu khớp với quy tắc của mình và chúng tôi có thể kiểm tra quy tắc đó để tìm tất cả các câu trong kho văn bản

Chúng tôi đang nhận được hơn 30% phù hợp với các quy tắc của mình, có nghĩa là 2226 trong số 7150 câu phù hợp với mẫu này. Hãy tạo một khung dữ liệu mới chỉ chứa những câu có đầu ra và sau đó tách động từ khỏi danh từ

Trích xuất câu từ văn bản python

Chúng ta hãy xem 10 động từ xuất hiện nhiều nhất được sử dụng trong các câu

Trích xuất câu từ văn bản python

Bây giờ, chúng ta có thể xem xét các động từ cụ thể để xem loại thông tin nào đang hiện diện. Ví dụ: 'chào mừng' và 'hỗ trợ' có thể cho chúng tôi biết Ấn Độ khuyến khích điều gì. Và những động từ như 'face' có thể cho chúng ta biết loại vấn đề chúng ta gặp phải trong thế giới thực

Trích xuất câu từ văn bản python

Trích xuất câu từ văn bản python

Bằng cách nhìn vào đầu ra, chúng ta có thể cố gắng tìm ra ngữ cảnh của câu là gì. Ví dụ, chúng ta có thể thấy rằng Ấn Độ ủng hộ 'nỗ lực', 'quan điểm', 'sáng kiến', 'đấu tranh', 'mong muốn, 'khát vọng', v.v. Trong khi Ấn Độ tin rằng thế giới phải đối mặt với 'mối đe dọa', 'xung đột', 'chủ nghĩa thực dân', 'đại dịch', v.v.

Chúng ta có thể chọn câu để khám phá sâu bằng cách nhìn vào đầu ra. Điều này chắc chắn sẽ giúp chúng ta tiết kiệm rất nhiều thời gian hơn là chỉ lướt qua toàn bộ văn bản

Khai thác thông tin #4 – Quy tắc về cấu trúc danh từ tính từ

Trong quy tắc trước mà chúng tôi đã thực hiện, chúng tôi đã trích xuất danh từ chủ ngữ và đối tượng, nhưng thông tin có vẻ không đầy đủ. Điều này là do nhiều danh từ có một tính từ hoặc một từ có phụ thuộc phức hợp làm tăng nghĩa của danh từ. Trích xuất những thứ này cùng với danh từ sẽ cho chúng ta thông tin tốt hơn về chủ ngữ và tân ngữ

Hãy xem câu mẫu dưới đây

Trích xuất câu từ văn bản python

Những gì chúng tôi đang tìm kiếm để đạt được ở đây là – “cuộc sống tốt đẹp hơn”

Mã cho quy tắc này rất đơn giản, nhưng hãy để tôi hướng dẫn bạn cách hoạt động của nó

  • Chúng tôi tìm kiếm các mã thông báo có thẻ Danh từ POS và có chủ đề hoặc đối tượng phụ thuộc
  • Sau đó, chúng tôi xem xét các nút con của các mã thông báo này và chỉ thêm nó vào cụm từ nếu nó bổ nghĩa cho danh từ

Trích xuất câu từ văn bản python

51% câu ngắn phù hợp với quy tắc này. Bây giờ chúng ta có thể thử kiểm tra nó trên toàn bộ kho văn bản

Trên toàn bộ kho văn bản gồm 7150, 76% hoặc 5117 câu phù hợp với quy tắc mẫu của chúng tôi, vì hầu hết chúng nhất định phải chứa danh từ và từ bổ nghĩa của nó

Trích xuất câu từ văn bản python

Bây giờ chúng ta có thể kết hợp quy tắc này cùng với quy tắc mà chúng ta đã tạo trước đó. Điều này sẽ cho chúng ta cái nhìn tốt hơn về thông tin nào có trong câu

Chúng tôi nhận được kết quả đầu ra 31%, một số trong số đó được hiển thị bên dưới

Trích xuất câu từ văn bản python

Ở đây, chúng tôi kết thúc bằng các cụm từ như “chúng tôi cam kết mới”, “chúng tôi có mức tăng đáng kể”, “mọi người mong đợi cuộc sống tốt hơn”, v.v. trong đó bao gồm các danh từ và sửa đổi của họ. Điều này cung cấp cho chúng tôi thông tin tốt hơn về những gì đang được trích xuất ở đây

Như bạn có thể thấy, chúng tôi không chỉ nghĩ ra một quy tắc mới để hiểu cấu trúc của câu mà còn kết hợp hai quy tắc để có được thông tin tốt hơn từ văn bản được trích xuất

Khai thác thông tin #5 – Quy tắc về giới từ

Cảm ơn chúa vì giới từ. Họ cho chúng tôi biết ở đâu hoặc khi một cái gì đó có mối quan hệ với một cái gì đó khác. Ví dụ, Người dân Ấn Độ tin vào các nguyên tắc của Liên hợp quốc. Trích xuất rõ ràng các cụm từ bao gồm cả giới từ sẽ cung cấp cho chúng ta rất nhiều thông tin từ câu. Đây chính xác là những gì chúng ta sẽ đạt được với quy tắc này

Chúng ta hãy cố gắng hiểu quy tắc này hoạt động như thế nào bằng cách xem xét nó bằng một câu mẫu – “Ấn Độ đã một lần nữa thể hiện niềm tin vào nền dân chủ. ”

  • Chúng tôi lặp lại tất cả các mã thông báo để tìm giới từ. Ví dụ, trong câu này
  • Khi gặp một giới từ, chúng ta kiểm tra xem nó có một từ đầu là danh từ không. Ví dụ, từ niềm tin trong câu này
  • Sau đó, chúng tôi xem xét các mã thông báo con của mã thông báo giới từ nằm ở phía bên phải của nó. Ví dụ, từ dân chủ

Điều này cuối cùng sẽ trích xuất cụm từ niềm tin vào nền dân chủ từ câu. Hãy xem biểu đồ phụ thuộc của câu dưới đây

Trích xuất câu từ văn bản python

Bây giờ hãy áp dụng quy tắc này cho các câu ngắn của chúng ta

Khoảng 48% số câu tuân theo quy tắc này

Trích xuất câu từ văn bản python

Chúng tôi có thể kiểm tra mẫu này trên toàn bộ kho văn bản vì chúng tôi có một số lượng lớn các câu phù hợp với quy tắc

74% tổng số câu phù hợp với mẫu này. Hãy tách giới từ ra khỏi danh từ và xem loại thông tin nào chúng ta có thể trích xuất

Khung dữ liệu sau hiển thị kết quả của quy tắc trên toàn bộ văn bản, nhưng giới từ và danh từ được tách ra để phân tích tốt hơn

Trích xuất câu từ văn bản python

Chúng ta có thể xem xét 10 giới từ xuất hiện nhiều nhất trong toàn bộ ngữ liệu

Trích xuất câu từ văn bản python

Chúng tôi xem xét các giới từ nhất định để khám phá các câu một cách chi tiết. Ví dụ: giới từ 'chống lại' có thể cung cấp cho chúng tôi thông tin về những gì Ấn Độ không hỗ trợ

Trích xuất câu từ văn bản python

Đọc lướt qua các danh từ, một số cụm từ quan trọng như

  • nỗ lực chống phổ biến
  • chống khủng bố, hành động chống khủng bố, cuộc chiến chống khủng bố
  • phân biệt đối xử với phụ nữ
  • cuộc chiến chống đói nghèo
  • đấu tranh chống chủ nghĩa thực dân

… và như thế. Điều này sẽ cung cấp cho chúng tôi một ý tưởng hợp lý về những câu chúng tôi muốn khám phá chi tiết. Ví dụ, nỗ lực chống phổ biến vũ khí hạt nhân nói về nỗ lực giải trừ vũ khí hạt nhân. Hay câu về cuộc đấu tranh chống chủ nghĩa thực dân nói về mối liên hệ lịch sử giữa Ấn Độ và Châu Phi bắt nguồn từ cuộc đấu tranh chung chống chủ nghĩa thực dân

Trích xuất câu từ văn bản python

Như bạn có thể thấy, giới từ cho chúng ta mối quan hệ quan trọng giữa hai danh từ. Và với một chút kiến ​​thức về miền, chúng tôi có thể dễ dàng sàng lọc dữ liệu khổng lồ và xác định những gì Ấn Độ hỗ trợ hoặc không hỗ trợ, trong số những thứ khác

Nhưng đầu ra có vẻ hơi không đầy đủ. Ví dụ, trong câu nỗ lực chống lại sự phổ biến, chúng ta đang nói về loại phổ biến nào? . Điều này chắc chắn sẽ làm tăng tính dễ hiểu của cụm từ được trích xuất

Quy tắc này có thể dễ dàng sửa đổi để bao gồm thay đổi mới. Tôi đã tạo một chức năng mới để trích xuất các công cụ sửa đổi danh từ cho danh từ mà chúng tôi đã trích xuất từ ​​Khai thác thông tin #4

Tất cả những gì chúng ta phải làm là gọi hàm này bất cứ khi nào chúng ta gặp một danh từ trong cụm từ của mình

Trích xuất câu từ văn bản python

Điều này chắc chắn có nhiều thông tin hơn trước. Ví dụ: 'những trở ngại trong phát triển kinh tế' thay vì 'những trở ngại trong phát triển' và 'người vi phạm nhân quyền nhiều hơn' thay vì 'người vi phạm các quyền'

Một lần nữa, việc kết hợp các quy tắc đã mang lại cho chúng tôi nhiều sức mạnh và tính linh hoạt hơn để chỉ khám phá chi tiết những câu có cụm từ được trích xuất có ý nghĩa

Mã số

Bạn có thể tìm thấy tệp mã hoàn chỉnh tại đây

Ghi chú kết thúc

Khai thác thông tin hoàn toàn không phải là một nhiệm vụ NLP dễ dàng thực hiện. Bạn cần dành thời gian với dữ liệu để hiểu rõ hơn về cấu trúc của nó và những gì nó cung cấp

Trong bài viết này, chúng tôi sử dụng kiến ​​thức lý thuyết và đưa nó vào sử dụng thực tế. Chúng tôi đã làm việc với tập dữ liệu văn bản và cố gắng trích xuất thông tin bằng các kỹ thuật trích xuất thông tin truyền thống

Chúng tôi đã tìm kiếm các cụm từ và mối quan hệ chính trong dữ liệu văn bản để thử và trích xuất thông tin từ văn bản. Kiểu tiếp cận này đòi hỏi sự kết hợp giữa máy tính và nỗ lực của con người để trích xuất thông tin liên quan

Làm cách nào để trích xuất dữ liệu cụ thể từ văn bản trong Python?

Làm cách nào để trích xuất dữ liệu từ tệp CSV bằng Python? .
Nhập thư viện csv. nhập csv
Mở tệp CSV. Các. .
Sử dụng tệp csv. đối tượng reader để đọc tệp CSV. csvreader = csv. người đọc (tập tin)
Trích xuất tên trường
Trích xuất các hàng/bản ghi
Đóng tệp

một câu cho Extract là gì?

Anh ấy rút thẻ tín dụng từ ví của mình . Tôi đã phải nhổ răng. Khối u đã được phẫu thuật lấy ra.

NP NLTK là gì?

2. Chia nhỏ 1 cụm từ danh từ . Ví dụ: đây là một số văn bản của Wall Street Journal với các đoạn NP được đánh dấu bằng dấu ngoặc. (2)search for chunks corresponding to individual noun phrases. For example, here is some Wall Street Journal text with NP-chunks marked using brackets: (2)

Chức năng nào sau đây được sử dụng để ngắt văn bản đã cho thành câu?

Mã hóa câu. Chúng tôi sử dụng phương pháp sent_tokenize() để chia tài liệu hoặc đoạn văn thành các câu.