HTML thành văn bản: Chỉ lấy các từ ra khỏi tệp trang web
Đôi khi bạn không muốn có một tài liệu. Bạn muốn có một bức tường câu. Dữ liệu huấn luyện cho một bộ phân loại, một kho văn bản
để lập mô hình chủ đề, các đoạn cho chỉ mục nhúng, đầu vào cho trình tóm tắt sẽ bỏ qua định dạng
dù sao đi nữa - trong tất cả những điều đó, mọi # và | và ** là một nhân vật mà
làm bạn tốn kém và không mua được gì cho bạn.
Đó là mục đích của trang này. Thả vào một .html hoặc .htm tập tin và bạn lấy lại
văn xuôi có thể đọc được nhưng không có phần đánh dấu - không thẻ, không thuộc tính, không cú pháp. Miễn phí, không cần đăng ký, giới hạn 50 MB,
và tập tin không được lưu trữ ở bất cứ đâu sau đó. Thay vào đó, nếu bạn muốn hệ thống phân cấp tiêu đề và các bảng được giữ nguyên,
HTML tới Markdown là anh chị em ruột
trang và chuyển đổi định dạng ở trên sẽ chuyển tệp của bạn sang trang đó mà không cần tải lên lại.
"Tước thẻ" thực sự phải làm gì
Việc xóa một cách ngây thơ mọi thứ giữa các dấu ngoặc nhọn sẽ tạo ra rác và bạn nên hiểu lý do tại sao — đó là sự khác biệt giữa văn bản có thể sử dụng được và một mớ hỗn độn.
HTML có các phần tử khối và phần tử nội tuyến và chúng cần được xử lý ngược lại. Khi một
</p> đóng cửa và tiếp theo <p> mở ra, đó là ranh giới đoạn văn và
cần phải trở thành ngắt dòng. Khi một </strong> kết thúc câu ở giữa, đó không phải là
ranh giới nào cả - chèn một dòng mới vào đó sẽ cắt câu làm đôi. Nhận sai điều này và bạn kết thúc
lên với văn bản ở đâu the quick brown fox xuất hiện dưới dạng bốn dòng riêng biệt vì ai đó đã in đậm
hai trong số các từ.
Nửa còn lại của công việc là khoảng trắng. HTML thu gọn các khoảng trắng, tab và dòng mới xuống còn một khi
nó hiển thị, vì vậy nguồn được in đẹp mắt với phần thụt đầu dòng chứa rất nhiều khoảng trắng
điều đó không bao giờ có nghĩa là có thể nhìn thấy được. Một cách thích hợp HTML thành văn bản chuyển đổi thu gọn nó giống nhau
theo cách trình duyệt thực hiện, đó là lý do tại sao kết quả đầu ra trông giống như trang thay vì giống như tệp.
Các mục trong danh sách có dòng riêng, <br> trở thành dấu ngắt và các ô của bảng được tách ra
thay vì bị kẹt lại với nhau.
Thực thể, trích dẫn thông minh và nhân vật bí ẩn
HTML mã hóa các ký tự nhất định để chúng không xung đột với đánh dấu. & là một
ký hiệu. < là dấu bé hơn. là một không gian không bị phá vỡ,
’ là một dấu nháy đơn cong, — là một dấu gạch ngang em. Trong trình duyệt bạn
không bao giờ nhìn thấy mã - bạn nhìn thấy các ký tự.
Trong văn bản được trích xuất, các thực thể không được mã hóa là chất độc. Một tokeniser xử lý ’ như một số
mã thông báo có tiếng ồn, việc khớp từ khóa không thành công don’tvà bất kỳ chuỗi xuôi dòng nào
so sánh lặng lẽ phá vỡ. Vì vậy, các thực thể sẽ được giải mã trên đường thoát ra. Không gian không phá vỡ là không gian lén lút
đặc biệt là vì chúng trông giống hệt với các không gian bình thường trên màn hình trong khi không thực hiện được mọi
split(" ") bạn viết; chúng đi qua đây như những không gian thực sự.
Mã hóa cũng đáng xem qua. Hầu hết các tập tin hiện đại đều khai báo <meta charset="utf-8">, nhưng
các trang cũ hơn và các bản xuất CMS đôi khi được ngụy trang bằng tiếng Latin-1 hoặc Windows-1252. Nếu đầu ra của bạn có
’ nơi đáng lẽ phải có dấu nháy đơn thì tệp nguồn đã nói dối về mã hóa của nó - hãy lưu lại dưới dạng
UTF-8 từ trình soạn thảo văn bản và chuyển đổi lại.
Văn bản không bao giờ có ý định đọc
Một trang chứa nhiều từ hơn mức nó hiển thị cho bạn và một số từ trong số đó xuất hiện khi được trích xuất:
- Văn bản điều hướng và chân trang. Nhãn menu, đường dẫn breadcrumb, "trở lại đầu trang", sơ đồ trang web 80 liên kết ở phía dưới. Văn bản hợp pháp, không có giá trị về mặt ngữ nghĩa. Trên một bài báo đã lưu điều này có thể lớn hơn chính bài viết.
- Biểu ngữ cookie và bản sao đồng ý. Hai trăm từ soạn sẵn về mặt pháp lý xuất hiện trên mọi trang bạn lưu từ tên miền đó — có nghĩa là nếu bạn đang xây dựng một kho văn bản, bạn sắp sửa nhân đôi chúng hàng nghìn lần.
- Văn bản thay thế và nhãn ARIA. Đôi khi có giá trị (văn bản thay thế của biểu đồ có thể là văn bản duy nhất mô tả dữ liệu), đôi khi chỉ là "hình ảnh" được lặp lại bốn mươi lần.
- Các yếu tố ẩn. Các nhịp chỉ dành cho trình đọc màn hình, các bảng xếp hình được thu gọn và
<noscript>tất cả các bản dự phòng đều chứa văn bản thực trong nguồn mặc dù bạn chưa từng thấy chúng được kết xuất.
Cách tốt nhất nếu nguồn quan trọng: lưu trang từ chế độ đọc của trình duyệt, chế độ này sẽ loại bỏ hầu hết đồ đạc trước khi nó chạm tới hồ sơ. Nếu không, hãy chuyển đổi rồi cắt bớt phần đầu và đuôi của đầu ra. Bản soạn sẵn lặp đi lặp lại rất dễ nhận ra khi bạn biết cách tìm kiếm và cắt bỏ là cách tốt nhất giá trị phút bạn sẽ chi tiêu cho toàn bộ quy trình.
Tại sao Văn bản thuần túy lại đánh bại Markdown cho công việc NLP
Đây không chỉ là "Markdown mà còn đơn giản hơn" — đối với nhiều quy trình, văn bản thuần túy là lựa chọn chính xác và Markdown đang tệ hơn.
- Nhúng. Mô hình nhúng mã hóa bất cứ thứ gì bạn đưa ra, bao gồm cả cú pháp. ống các ký tự và băm tiêu đề sẽ dịch chuyển các vectơ mà không thêm ý nghĩa và chúng ăn sâu vào mô hình giới hạn đầu vào. Văn xuôi sạch sẽ nhúng sạch hơn.
- Phân loại và mô hình chủ đề. Phương pháp tiếp cận Bag-of-word và TF-IDF xử lý
**word**vàworddưới dạng các mã thông báo khác nhau trừ khi bạn làm sạch trước. Bỏ qua vấn đề hoàn toàn. - Lập chỉ mục tìm kiếm. Hầu hết các đường dẫn chỉ mục đều muốn có câu. Cho chúng ăn Markdown có nghĩa là viết một bước tước bỏ mà bạn không cần.
- Phân đoạn câu. Các bộ tách như spaCy hoặc NLTK hoạt động trên văn xuôi. Cú pháp bảng làm chúng bối rối tạo ra những mảnh vỡ.
- Ngân sách mã thông báo. Trên một trang dài, việc bỏ đánh dấu sẽ làm giảm đáng kể số lượng mã thông báo — bộ đếm bên dưới đầu ra hiển thị cho bạn chính xác số lượng và so sánh hai định dạng trên cùng một tập tin là một thử nghiệm một cú nhấp chuột.
Tệp bạn có so với trang bạn không có
Công cụ này chuyển đổi tệp HTML mà bạn tải lên. Nó không đi và lấy một URL. Sự khác biệt đó quan trọng hơn có vẻ như vậy, bởi vì hai tình huống này thất bại theo những cách khác nhau.
Nếu tệp của bạn đến từ tính năng Lưu dưới dạng của trình duyệt trên một trang web có nhiều JavaScript, tệp đó có thể hầu như không chứa văn bản — chỉ là một div vùng chứa trống và một tập lệnh gói, với nội dung thực tế đã được tạo trong thời gian chạy và không bao giờ được ghi vào đĩa. Bạn sẽ nhận được kết quả gần như trống rỗng và có vẻ như bộ chuyển đổi đã bị hỏng. Nó đã không; những từ đó không có trong tập tin. Tìm kiếm nguồn cho câu bạn nhớ để xác nhận.
Khi điều đó xảy ra, hãy sử dụng Web2Txt thay vào đó - nó lấy một URL trực tiếp, hiển thị trang và trích xuất từ kết quả. Sử dụng trang này khi bạn đã có tệp: xuất email, xây dựng tài liệu, kết xuất CMS, báo cáo được tạo dưới dạng HTML, tệp được lưu trữ trang từ nhiều năm trước.
Công việc tiêu biểu
- Xây dựng tập dữ liệu đào tạo hoặc đánh giá từ một thư mục gồm các trang được lưu trữ, nơi bạn muốn văn xuôi thô và định dạng nhất quán trên hàng nghìn tài liệu.
- Khả năng đọc và kiểm tra nội dung - số từ, cấp độ đọc, tần suất từ khóa. Tất cả những thứ này cần văn bản không có đánh dấu làm lệch các con số.
- Chuyển thành kịch bản. Văn bản thuần túy đi vào
grep,wc, một diff hoặc một lớp lót Python mà không có bất kỳ kịch tính nào thoát ra được. - Tóm tắt một trang dài nơi bạn không quan tâm đến cấu trúc và muốn chi tiêu các mã thông báo trên nội dung.
- Trích xuất văn bản từ tệp HTML cho công việc dịch thuật hoặc phiên âm, trong đó người dịch muốn câu và không có gì khác.
Câu hỏi thường gặp
Làm cách nào để chuyển đổi tệp HTML thành văn bản?
Thả .html hoặc .htm tập tin ở trên và văn bản có thể đọc được sẽ quay trở lại với mọi thẻ, tập lệnh và khối kiểu bị loại bỏ. Miễn phí, không cần đăng ký, 50 MB mỗi tệp. Tải xuống dưới dạng .txt hoặc sao chép nó thẳng vào bất cứ điều gì cần các từ hơn là đánh dấu.
Tôi có thể chuyển đổi một trang web trực tiếp bằng cách dán URL không?
Không có trên trang này - trang này lấy một tập tin bạn đã có. Đối với một URL, Web2Txt tìm nạp trang và trích xuất nó trực tiếp, điều này giúp tiết kiệm thao tác lưu và tải lên. Sử dụng trang này cho các trang bạn đã lưu trước đó, nội dung email đã xuất hoặc HTML được tạo bởi nội dung cục bộ.
Nó có loại bỏ các biểu ngữ điều hướng, quảng cáo và cookie không?
Nồi hơi là một mối nguy hiểm đã được biết đến hơn là một vấn đề đã được giải quyết. Các tập lệnh, kiểu và thẻ luôn hoạt động; Liệu một thanh bên hay thông báo cookie có được tính là nội dung hay không là một quyết định phán xét và một trang đã lưu sẽ chứa tất cả nội dung đó trong cùng một DOM. Đọc lướt phần trên và phần dưới của đầu ra - đó là nơi tập trung các mảnh vụn điều hướng.
Điều gì xảy ra với các liên kết trong trang?
Văn bản liên kết tồn tại dưới dạng từ còn các URL đằng sau nó thì không. Một câu đọc "xem hướng dẫn cài đặt" chuyển đổi chính xác thành câu đó mà không có dấu hiệu cho biết nó chỉ vào đâu. Nếu đích đến quan trọng — xây dựng bản đồ liên kết, kiểm tra các tài liệu tham khảo bên ngoài — hãy sử dụng HTML tới Markdown, giữ href trong cú pháp ngoặc.
Tại sao đầu ra của tôi đầy những dòng trống và ký tự lạc lối?
Thông thường, một trang được lưu với toàn bộ DOM nguyên vẹn — các khối mẫu ẩn, tải trọng JSON-LD, SVG nội tuyến và các đoạn phân tích đều nằm trong đánh dấu đó và tất cả đều chứa một loại văn bản. Biểu thức chính quy một dòng sẽ xóa mẫu lặp lại sau khi bạn đã phát hiện ra mẫu đó hoặc lưu lại trang bằng chế độ xem trình đọc của trình duyệt và thay vào đó chuyển đổi mẫu đó.
Phần còn lại của bộ
File2Txt xử lý mọi thứ được hỗ trợ định dạng từ một hộp tải lên nếu bạn không muốn chọn. Hoặc đi trực tiếp: PDF thành văn bản đối với tài liệu, Word sang văn bản cho DOCX, EPUB sang văn bản đối với sách điện tử và CSV thành văn bản cho dữ liệu được phân cách.
Làm việc với mã? các GitHub sang trình chuyển đổi văn bản, cái Công cụ chuyển đổi GitLab và bộ chuyển đổi thư mục cục bộ san phẳng toàn bộ dự án vào một tập tin. Và hướng dẫn này bao gồm câu hỏi rộng hơn về việc chuẩn bị tài liệu cho LLM.
Repo2Txt được xây dựng và duy trì bởi v12hero, một nhà phát triển độc lập xây dựng các ứng dụng web và ứng dụng gốc ưu tiên quyền riêng tư.