Hướng dẫn extract headings from word document python - trích xuất các tiêu đề từ python tài liệu từ

Mô hình đối tượng từ có thể được tìm thấy ở đây. Đối tượng

for word in doc.Words:
    print word.Style
3 của bạn sẽ chứa các thuộc tính này và bạn có thể sử dụng chúng để thực hiện các hành động mong muốn của mình (lưu ý rằng tôi chưa sử dụng tính năng này với Word, vì vậy kiến ​​thức của tôi về mô hình đối tượng là thưa thớt). Chẳng hạn, nếu bạn muốn đọc tất cả các từ trong một tài liệu, bạn có thể làm:

for word in doc.Words:
    print word

Và bạn sẽ nhận được tất cả các từ. Mỗi mục

for word in doc.Words:
    print word.Style
4 đó sẽ là một đối tượng
for word in doc.Words:
    print word.Style
5 (tham chiếu ở đây), vì vậy bạn có thể truy cập các thuộc tính đó trong quá trình lặp. Trong trường hợp của bạn, đây là cách bạn sẽ có được phong cách:

for word in doc.Words:
    print word.Style

Trên một tài liệu mẫu với một tiêu đề 1 và văn bản bình thường, bản in này:

Heading 1
Heading 1
Heading 1
Heading 1
Heading 1
Normal
Normal
Normal
Normal
Normal

Để nhóm các tiêu đề với nhau, bạn có thể sử dụng

for word in doc.Words:
    print word.Style
6. Như đã giải thích trong các nhận xét mã bên dưới, bạn cần tham khảo
for word in doc.Words:
    print word.Style
7 của chính đối tượng, vì sử dụng
for word in doc.Words:
    print word.Style
8 trả về một thể hiện không nhóm đúng với các trường hợp khác có cùng kiểu:

from itertools import groupby
import win32com.client as win32

# All the same as yours
word = win32.Dispatch("Word.Application")
word.Visible = 0
word.Documents.Open("testdoc.doc")
doc = word.ActiveDocument

# Here we use itertools.groupby (without sorting anything) to
# find groups of words that share the same heading (note it picks
# up newlines). The tricky/confusing thing here is that you can't
# just group on the Style itself - you have to group on the str(). 
# There was some other interesting behavior, but I have zero 
# experience with COMObjects so I'll leave it there :)
# All of these comments for two lines of code :)
for heading, grp_wrds in groupby(doc.Words, key=lambda x: str(x.Style)):
  print heading, ''.join(str(word) for word in grp_wrds)

Điều này ra:

Heading 1 Here is some text

Normal 
No header

Nếu bạn thay thế

for word in doc.Words:
    print word.Style
9 bằng cách hiểu danh sách, bạn sẽ nhận được bên dưới (nơi bạn có thể thấy Newlines):

Heading 1 ['Here ', 'is ', 'some ', 'text', '\r']
Normal ['\r', 'No ', 'header', '\r', '\r']

Làm thế nào để bạn tách các tiêu đề?

for word in doc.Words:
   print word

Và bạn sẽ nhận được tất cả các từ. Mỗi mục

for word in doc.Words:
    print word.Style
4 đó sẽ là một đối tượng
for word in doc.Words:
    print word.Style
5 (tham chiếu ở đây), vì vậy bạn có thể truy cập các thuộc tính đó trong quá trình lặp. Trong trường hợp của bạn, đây là cách bạn sẽ có được phong cách:

for word in doc.Words:
   print word.Style

Trên một tài liệu mẫu với một tiêu đề 1 và văn bản bình thường, bản in này:

Heading 1
Heading 1
Heading 1
Heading 1
Heading 1
Normal
Normal
Normal
Normal
Normal

Chuyển đổi Word thành docx và sử dụng mô -đun Python docx

from docx
import Document

file = 'test.docx'
document = Document(file)

for paragraph in document.paragraphs:
   if paragraph.style.name == 'Heading 1':
   print(paragraph.text)


Gợi ý: 2

Ngày đăng ngày 17 tháng 4 năm 2022, © 2022 Web Dev

Ví dụ, chúng tôi viết

for word in doc.Words:
    print word.Style
0


Gợi ý: 3

Cập nhật lần cuối: 03 tháng 1 năm 2021, Cổng CS 2021 Giáo trình

Lệnh PIP để cài đặt mô -đun này là:

for word in doc.Words:
    print word.Style
1


Hướng dẫn extract headings from word document python - trích xuất các tiêu đề từ python tài liệu từ

Trích xuất văn bản từ các tài liệu từ thường được thực hiện trong các kịch bản khác nhau. Ví dụ, để phân tích văn bản, để trích xuất các phần cụ thể của một tài liệu và kết hợp chúng thành một tài liệu duy nhất, v.v. Trong bài viết này, bạn sẽ học cách trích xuất văn bản từ các tài liệu từ được lập trình trong Python. Hơn nữa, chúng tôi sẽ đề cập đến cách trích xuất nội dung giữa các yếu tố cụ thể như đoạn văn, bảng, v.v ... Dynamic.how to extract text from Word documents programmatically in Python. Moreover, we will cover how to extract content between specific elements such as paragraphs, tables, etc. dynamically.

  • Thư viện Python để trích xuất văn bản từ các tài liệu từ
  • Trích xuất văn bản trong tài liệu từ
  • Trích xuất văn bản từ một tài liệu Word
    • Trích xuất văn bản giữa các đoạn văn
    • Trích xuất văn bản giữa các loại nút khác nhau
    • Trích xuất văn bản giữa các đoạn văn dựa trên các kiểu

Aspose.words cho Python là một thư viện mạnh mẽ cho phép bạn tạo các tài liệu MS Word từ đầu. Hơn nữa, nó cho phép bạn thao tác các tài liệu từ hiện có để mã hóa, chuyển đổi, trích xuất văn bản, v.v. Chúng tôi sẽ sử dụng thư viện này để trích xuất văn bản từ tài liệu từ tài liệu hoặc tài liệu. Bạn có thể cài đặt thư viện từ PYPI bằng lệnh PIP sau.

for word in doc.Words:
    print word.Style
2

Một tài liệu MS Word bao gồm các yếu tố khác nhau bao gồm các đoạn văn, bảng, hình ảnh, v.v. Do đó, các yêu cầu của trích xuất văn bản có thể thay đổi từ kịch bản này sang kịch bản khác. Ví dụ: bạn có thể cần trích xuất văn bản giữa các đoạn, dấu trang, nhận xét, v.v.

Mỗi loại phần tử trong một tài liệu Word được biểu diễn dưới dạng nút. Do đó, để xử lý một tài liệu, bạn sẽ phải chơi với các nút. Vì vậy, hãy để bắt đầu và xem cách trích xuất văn bản từ các tài liệu từ trong các kịch bản khác nhau.

Trong phần này, chúng tôi sẽ triển khai trình trích xuất văn bản Python cho các tài liệu từ và quy trình trích xuất văn bản sẽ như sau:

  • Đầu tiên, chúng tôi sẽ xác định các nút mà chúng tôi muốn đưa vào trong quá trình trích xuất văn bản.
  • Sau đó, chúng tôi sẽ trích xuất nội dung giữa các nút được chỉ định (bao gồm hoặc loại trừ các nút bắt đầu và kết thúc).
  • Cuối cùng, chúng tôi sẽ sử dụng bản sao của các nút được trích xuất, ví dụ: Để tạo một tài liệu từ mới bao gồm nội dung được trích xuất.

Bây giờ, hãy để một phương thức có tên là Extract_Content mà chúng ta sẽ vượt qua các nút và một số tham số khác để thực hiện trích xuất văn bản. Phương pháp này sẽ phân tích tài liệu và sao chép các nút. Sau đây là các tham số mà chúng tôi sẽ chuyển sang phương pháp này.extract_content to which we will pass the nodes and some other parameters to perform the text extraction. This method will parse the document and clone the nodes. The following are the parameters that we will pass to this method.

  1. StartNode và EndNode như là điểm bắt đầu và kết thúc để trích xuất nội dung, tương ứng. Đây có thể là cả hai cấp độ khối (đoạn, bảng) hoặc cấp độ nội tuyến (ví dụ: Run, FieldStart, BookmarkStart, v.v.). and EndNode as starting and ending points for the extraction of the content, respectively. These can be both block level (Paragraph , Table) or inline level (e.g Run, FieldStart, BookmarkStart etc.) nodes.
    1. Để vượt qua một trường, bạn nên vượt qua đối tượng FieldStart tương ứng.FieldStart object.
    2. Để vượt qua dấu trang, các nút BookmarkStart và Bookmarkend nên được thông qua.BookmarkStart and BookmarkEnd nodes should be passed.
    3. Đối với các ý kiến, nên sử dụng các nút bình luận và bình luận và bình luận.CommentRangeStart and CommentRangeEnd nodes should be used.
  2. Định nghĩa định nghĩa nếu các điểm đánh dấu được bao gồm trong trích xuất hay không. Nếu tùy chọn này được đặt thành sai và cùng một nút hoặc các nút liên tiếp được truyền, thì một danh sách trống sẽ được trả về. defines if the markers are included in the extraction or not. If this option is set to false and the same node or consecutive nodes are passed, then an empty list will be returned.

Sau đây là việc thực hiện hoàn toàn phương thức Extract_Content trích xuất nội dung giữa các nút được truyền.extract_content method that extracts the content between the nodes that are passed.

Một số phương pháp trợ giúp cũng được yêu cầu bằng phương pháp Extract_Content để thực hiện hoạt động trích xuất văn bản, được đưa ra dưới đây.extract_content method to accomplish the text extraction operation, which are given below.

Bây giờ chúng tôi đã sẵn sàng để sử dụng các phương thức này và trích xuất văn bản từ một tài liệu Word.

Hãy cùng xem cách trích xuất nội dung giữa hai đoạn trong tài liệu Word Docx. Sau đây là các bước để thực hiện thao tác này trong Python.

  • Đầu tiên, tải tài liệu Word bằng lớp tài liệu.Document class.
  • Nhận tham chiếu của các đoạn bắt đầu và kết thúc vào hai đối tượng bằng Document.First_Section.Body.Get_Child (Nodetype.Paragraph, Int, Boolean) .as_paragraph ().Document.first_section.body.get_child(NodeType.PARAGRAPH, int, boolean).as_paragraph() method.
  • Gọi Trích xuất_content (StartPara, Endpara, true) để trích xuất các nút vào một đối tượng.extract_content(startPara, endPara, True) method to extract the nodes into an object.
  • Gọi Generate_Document (Document, Trích xuấtNodes) Phương thức trợ giúp để tạo tài liệu bao gồm nội dung được trích xuất.generate_document(Document, extractedNodes) helper method to create document consisting of the extracted content.
  • Cuối cùng, lưu tài liệu được trả về bằng phương thức tài liệu.save (chuỗi).Document.save(string) method.

Mẫu mã sau đây cho thấy cách trích xuất văn bản giữa các đoạn thứ 7 và 11 trong một tài liệu từ trong Python.

Bạn cũng có thể trích xuất nội dung giữa các loại nút khác nhau. Để trình diễn, hãy để trích xuất nội dung giữa một đoạn văn và bảng và lưu nó vào một tài liệu Word mới. Sau đây là các bước để thực hiện thao tác này.

  • Tải tài liệu Word bằng lớp tài liệu.Document class.
  • Nhận tham chiếu của các nút bắt đầu và kết thúc thành hai đối tượng bằng phương thức document.first_section.body.get_child (Nodetype, int, boolean).Document.first_section.body.get_child(NodeType, int, boolean) method.
  • Gọi Trích xuất_content (StartPara, Endpara, true) để trích xuất các nút vào một đối tượng.extract_content(startPara, endPara, True) method to extract the nodes into an object.
  • Gọi Generate_Document (Document, Trích xuấtNodes) Phương thức trợ giúp để tạo tài liệu bao gồm nội dung được trích xuất.generate_document(Document, extractedNodes) helper method to create document consisting of the extracted content.
  • Lưu tài liệu được trả về bằng phương thức Document.Save (String).Document.save(string) method.

Mẫu mã sau đây cho thấy cách trích xuất văn bản giữa một đoạn và một bảng trong Python.

Bây giờ, hãy kiểm tra cách trích xuất nội dung giữa các đoạn dựa trên các kiểu. Để trình diễn, chúng tôi sẽ trích xuất nội dung giữa tiêu đề đầu tiên của nhóm 1 và đầu tiên là tiêu đề đầu tiên trong tài liệu từ. Các bước sau đây chứng minh làm thế nào để đạt được điều này trong Python.

  • Đầu tiên, tải tài liệu Word bằng lớp tài liệu.Document class.
  • Sau đó, trích xuất các đoạn vào một đối tượng bằng cách sử dụng phương thức trợ giúp của Paragraphs_by_style_name (tài liệu, tiêu đề 1).paragraphs_by_style_name(Document, “Heading 1”) helper method.
  • Trích xuất các đoạn vào một đối tượng khác bằng cách sử dụng phương thức trợ giúp của Paragraphs_by_style_name (tài liệu, tiêu đề 3).paragraphs_by_style_name(Document, “Heading 3”) helper method.
  • Gọi Trích xuất_Content (StartPara, Endpara, True) và chuyển các phần tử đầu tiên trong cả hai mảng đoạn là tham số thứ nhất và thứ hai.extract_content(startPara, endPara, True) method and pass the first elements in both paragraph arrays as first and second parameters.
  • Gọi Generate_Document (Document, Trích xuấtNodes) Phương thức trợ giúp để tạo tài liệu bao gồm nội dung được trích xuất.generate_document(Document, extractedNodes) helper method to create document consisting of the extracted content.
  • Cuối cùng, lưu tài liệu được trả về bằng phương thức tài liệu.save (chuỗi).Document.save(string) method.

Lưu tài liệu được trả về bằng phương thức Document.Save (String).

Mẫu mã sau đây cho thấy cách trích xuất văn bản giữa một đoạn và một bảng trong Python.

Bây giờ, hãy kiểm tra cách trích xuất nội dung giữa các đoạn dựa trên các kiểu. Để trình diễn, chúng tôi sẽ trích xuất nội dung giữa tiêu đề đầu tiên của nhóm 1 và đầu tiên là tiêu đề đầu tiên trong tài liệu từ. Các bước sau đây chứng minh làm thế nào để đạt được điều này trong Python.

Đầu tiên, tải tài liệu Word bằng lớp tài liệu.

Sau đó, trích xuất các đoạn vào một đối tượng bằng cách sử dụng phương thức trợ giúp của Paragraphs_by_style_name (tài liệu, tiêu đề 1).

Trích xuất các đoạn vào một đối tượng khác bằng cách sử dụng phương thức trợ giúp của Paragraphs_by_style_name (tài liệu, tiêu đề 3).

Gọi Trích xuất_Content (StartPara, Endpara, True) và chuyển các phần tử đầu tiên trong cả hai mảng đoạn là tham số thứ nhất và thứ hai.

Mẫu mã sau đây cho thấy cách trích xuất nội dung giữa các đoạn dựa trên các kiểu.

  • Đọc thêm
  • Bạn có thể khám phá các kịch bản khác về trích xuất văn bản từ các tài liệu từ bằng cách sử dụng bài viết tài liệu này.
  • Nhận giấy phép API miễn phí
  • Bạn có thể nhận được giấy phép tạm thời để sử dụng Aspose.words cho Python mà không có giới hạn đánh giá.
  • Sự kết luận

Trong bài viết này, bạn đã học được cách trích xuất văn bản từ các tài liệu MS Word bằng Python. Hơn nữa, bạn đã thấy cách trích xuất nội dung giữa các loại nút tương tự hoặc khác nhau trong một tài liệu từ được lập trình. Vì vậy, bạn có thể xây dựng trình trích xuất văn bản MS Word của riêng bạn trong Python. Bên cạnh đó, bạn có thể khám phá các tính năng khác của Aspose.words cho Python bằng tài liệu. Trong trường hợp bạn sẽ có bất kỳ câu hỏi, vui lòng cho chúng tôi biết qua diễn đàn của chúng tôi. If you ever need to get a Word document from a PowerPoint presentation, you can use Aspose Presentation to Word Document converter.

Làm cách nào để trích xuất các tiêu đề từ một tài liệu từ?

Sao chép phác thảo (tiêu đề) chỉ bằng tất cả các tính năng phiên bản..
Đặt con trỏ vào bất kỳ tiêu đề nào bạn sẽ sao chép ..
Bây giờ kiểu tiêu đề được chỉ định được tô sáng trên tab Home.....
Sau đó, tất cả các tiêu đề của phong cách này được chọn.....
Tạo một tài liệu Word mới, và sau đó nhấn các phím Ctrl + V cùng một lúc để dán các tiêu đề ..

Làm thế nào để bạn tách các tiêu đề?

Chọn Bố cục> ngắt> trang tiếp theo.Bấm đúp vào tiêu đề hoặc chân trang trên trang đầu tiên của phần mới.Nhấp vào liên kết đến trước để tắt nó và tháo tiêu đề hoặc chân trang từ phần trước.Lưu ý: Tiêu đề và chân trang được liên kết riêng biệt.

Làm cách nào để xác định các tiêu đề trong Word?

Tạo các tiêu đề hoặc chân trang khác nhau..
Bấm đúp vào tiêu đề hoặc chân trang ..
Chọn các trang lẻ và thậm chí khác nhau ..
Trên một trong các trang lẻ, chọn khu vực tiêu đề hoặc chân trang bạn muốn thay đổi ..
Nhập tiêu đề tài liệu, sau đó nhấn Tab hai lần ..
Chọn Số trang> Vị trí hiện tại và chọn một kiểu ..
Chọn một trang chẵn ..