7

Tôi mới sử dụng AI. Tôi đang làm một ứng dụng phân loại văn bản thông qua học máy. Ứng dụng cần phân loại các phần khác nhau của tài liệu HTML. Ví dụ: hầu hết các trang web đều có đầu, menu, thanh bên, chân trang, nội dung chính, v.v. Tôi muốn sử dụng trình phân loại văn bản để phân loại các phần này của tài liệu HTML và xác định các loại biểu mẫu khác nhau trên trang.Trí thông minh nhân tạo, Phân loại văn bản

  1. Sẽ rất hữu ích nếu có ai có thể cung cấp hướng dẫn chi tiết về chủ đề này.
  2. Ví dụ về ứng dụng tương tự, cũng sẽ rất hữu ích.

Tôi đang tìm kiếm các đề xuất kỹ thuật khác, liên quan đến mã & triển khai.

tôi có thể gán nhãn để html tag thuộc tính, giống như lớp hoặc id

<div class="menu-1"> 
<div id="entry"> 
<div id="content"> 
<div id="footer"> 
<div id="comment-12"> 
<div id="comment-title"> 

như cho mặt hàng đầu tiên:

TrainClassifier (label: "Menu", giá trị: "menu-1" , thuộc tính: "class", vị trí trong chuỗi: "21%", thẻ: "div");

Đầu vào:

  1. "menu-1" (giá trị thuộc tính)
  2. List item
  3. "lớp" (tên thuộc tính)
  4. "21" (vị trí thẻ trong chuỗi)
  5. "div" (tên thẻ)

Output

  1. "Menu" (được phân loại như nhãn)

gì thần kinh thư viện mạng, có thể mất đầu vào ở trên, và phân loại chúng theo nhãn (ví dụ: Thực đơn).

Tất cả người dùng không thể tạo regex hoặc xpath, họ cần tiếp cận dễ dàng hơn, vì vậy điều quan trọng là làm cho phần mềm thông minh, người dùng có thể làm nổi bật phần tài liệu html cần thiết, sử dụng điều khiển webbrowser và đào tạo phần mềm cho đến khi nó có thể tự làm việc.

nhưng tôi không biết làm thế nào để làm cho xe lửa phần mềm sử dụng AI,

AI Tôi đang tìm kiếm là, như nó nên có thể chấp nhận đầu vào khác nhau, và phân loại trên cơ sở đó, như tôi có đã nói mới với AI, không biết nhiều về nó. Nó sẽ rất hữu ích cho tôi nếu tôi nhận được câu trả lời cho câu hỏi tôi đã hỏi, như thư viện nào tôi nên sử dụng, và cách triển khai, câu trả lời gợi ý Xpath hoặc Regex hoặc các phương pháp khác không trả lời, nó thường xảy ra rằng bạn nhận được tất cả các đề xuất nhưng bạn cần.

+0

Tôi nghĩ đơn vị dữ liệu trong vấn đề phân loại này không được xác định rõ. Bạn nói đó là một phần của một html nhưng làm thế nào bạn sẽ quyết định phần nào mỗi văn bản trong html thuộc về? –

+0

Tôi nghĩ bạn phải làm điều đó trước. Nếu không, ngay cả với phương pháp phân loại như vậy, bạn sẽ huấn luyện họ như thế nào? –

+0

Tôi không nhận được, những gì bạn đang cố gắng nói, bạn có thể xây dựng ... –

Trả lời

0

Phân loại có thể giúp bạn, nếu bạn có các phần dữ liệu mà bạn phải gán nhãn. Đây không phải là trường hợp.Bạn nên viết thủ công các quy tắc XPath để tách rời các tài liệu của bạn.

2

Đây là một chủ đề rất rộng. Có một vài thư viện mạng thần kinh ngoài đó cho C#, chỉ cần tìm kiếm chúng trên Stack Overflow.

Bạn sẽ cần thực hiện đào tạo được giám sát trước khi có thể thực hiện bất kỳ loại phân loại nào. Để ANN hiểu được những gì bạn đang ném vào nó, bạn sẽ cần phải tìm ra cách bạn sẽ phân tích cú pháp HTML để có được kết quả mà bạn đang tìm kiếm.

Ví dụ: hầu hết các trang web sẽ sử dụng CSS để hiển thị nội dung trên trình duyệt. Các trang web khác có thể sử dụng bảng. Bạn sẽ cần phải đào tạo cho cả hai.

Vấn đề của bạn không phải là vấn đề dễ dàng.

3

Tôi khuyên bạn nên xem xét các thuật toán đơn giản trước tiên dễ hiểu, tôi có thể đưa ra gợi ý cho một số thuật toán.

  1. Naive Bayes (bạn sẽ tìm thấy nhiều triển khai nhưng bạn có thể tự làm, bản ngã rất đơn giản để thực hiện nhưng khá mạnh).
  2. Entropy tối đa (Ví dụ: SharpMaxEnt - nguồn mở).
  3. SVM (Ví dụ: LibSVM cho cổng C#).

    Nếu bạn muốn nhận được một hương vị của cách làm việc, tải về bộ công cụ WEKA:

    http://sourceforge.net/projects/weka/ 
    

    Việc phổ biến theo các bước thường như sau:

    1. Xác định như nhiều thuộc tính/tính năng như bạn có thể nhận (và một bộ nhãn).
    2. dữ liệu Thu thập mà là một tập hợp {Label, Attribute1, A2, A3, ...}
    3. Chọn một tập tối thiểu các thuộc tính quan trọng sử dụng các thuật toán lựa chọn tính năng (cũng có sẵn trong bộ công cụ WEKA)
    4. Train phân loại sử dụng thuật toán chuẩn
    5. Kiểm tra hệ thống, cho đến khi bạn nhận được độ chính xác mong muốn, truy lại hoặc các thông số khác.

    Chúc may mắn!

+0

+1 Weka. @Milan Aditya: bạn cũng có thể tạo một luồng công việc học máy như vậy với Knime: http://www.knime.org/ hoặc http://orange.biolab.si/. Những công cụ này có GUI rất đẹp và đường cong học tập là hợp lý.Tôi nghĩ việc sử dụng Knime hoặc cam là cách tốt nhất để kiểm tra các vectơ tính năng của bạn trước khi thực hiện triển khai thực tế. Xem ví dụ: http://www.knime.org/introduction/examples – Skarab

Các vấn đề liên quan