22

Tôi hiểu rằng đầu vào ANN phải được chuẩn hóa, chuẩn hóa, v.v. Để lại các đặc tính và mô hình của ANN khác nhau sang một bên, làm cách nào để xử lý trước văn bản được mã hóa UTF-8 trong phạm vi {0 , 1} hoặc cách khác giữa phạm vi {-1,1} trước khi nó được đưa ra làm đầu vào cho mạng thần kinh? Tôi đã tìm kiếm điều này trên google nhưng không thể tìm thấy bất kỳ thông tin nào (tôi có thể đang sử dụng sai cụm từ).xử lý chuỗi văn bản cho đầu vào mạng thần kinh

  1. Điều đó có hợp lý không?
  2. Đó không phải là cách văn bản được xử lý trước cho mạng thần kinh?
  3. Có cách nào khác không?

EDIT 20 tháng mười một năm 2013:

tôi từ lâu đã được chấp nhận như đúng câu trả lời của Pete. Tuy nhiên, tôi có những nghi ngờ nghiêm trọng, chủ yếu là do các nghiên cứu gần đây tôi đã làm về kiến ​​thức tượng trưng và ANN.

Dario Floreano and Claudio Mattiussi trong sách của họ giải thích rằng việc xử lý như vậy thực sự có thể, bằng cách sử dụng mã hóa phân phối. Thật vậy nếu bạn thử tìm kiếm trên google scholar, tồn tại rất nhiều bài báo về khoa học thần kinh và các bài báo về cách mã hóa được giả định được sử dụng bởi bộ não để mã hóa Kiến thức tượng trưng.

Teuvo Kohonen, trong bài báo của mình "Tự tổ chức Maps" giải thích:

Người ta có thể nghĩ rằng việc áp dụng pháp luật thích ứng thần kinh để một biểu tượng set (coi như là một tập hợp các biến vectơ) có thể tạo một bản đồ địa hình hiển thị "khoảng cách hợp lý" giữa các ký hiệu . Tuy nhiên, xảy ra một vấn đề nằm trong bản chất khác nhau của của các biểu tượng so với dữ liệu liên tục. Đối với trường hợp thứ hai, tương tự luôn hiển thị theo cách tự nhiên, vì sự khác biệt về chỉ số giữa các mã hóa liên tục của chúng. Điều này không còn đúng đối với các mục biểu tượng, rời rạc, chẳng hạn như các từ, không có chỉ số nào được định nghĩa là . Chính bản chất của một biểu tượng mà ý nghĩa của nó là tách khỏi mã hóa của nó.

Tuy nhiên, Kohonen đã quản lý để đối phó với Thông tin tượng trưng trong SOM!

Hơn nữa, Giáo sư Tiến sĩ Alfred Ultsch trong bài báo của mình "Các Lồng ghép Neural Networks với Processing Kiến thức tượng trưng" giao dịch chính xác với cách xử lý kiến ​​thức tượng trưng (như văn bản) trong ANN của. Ultsch cung cấp các phương pháp sau đây để xử lý kiến ​​thức tượng trưng: Lý thuyết xấp xỉ thần kinh, Hợp nhất thần kinh, Introspection và tích hợp Thu thập kiến ​​thức. Mặc dù ít thông tin có thể được tìm thấy trên những người trong học giả google hoặc bất cứ nơi nào khác cho rằng vấn đề.

Câu trả lời của Pete đúng về ngữ nghĩa học. Ngữ nghĩa trong ANN thường bị ngắt kết nối.Tuy nhiên, tham khảo sau đây, cung cấp cái nhìn sâu sắc về cách các nhà nghiên cứu sử dụng RBM, được đào tạo để nhận ra sự giống nhau trong ngữ nghĩa của các đầu vào từ khác nhau, do đó không thể có ngữ nghĩa, nhưng sẽ yêu cầu cách tiếp cận phân lớp hoặc ANN phụ .

Natural Language Processing With Subsymbolic Neural Networks, Risto Miikkulainen, 1997 Training Restricted Boltzmann Machines on Word Observations, G.E.Dahl, Ryan.P.Adams, H.Rarochelle, 2012

+1

Điều này có ý nghĩa hay không phụ thuộc vào những gì bạn đang cố gắng đạt được với ANN của bạn. Độ dài cố định của văn bản của bạn phải không? Nghĩa là, đầu vào sẽ luôn là chuỗi có độ dài giống nhau không?Nếu không, thì đây có lẽ không phải là điều bạn muốn làm. Bạn có thể mô tả chi tiết hơn về những gì bạn đang cố gắng đạt được ANN của bạn nói chung không? Vấn đề bạn đang cố gắng giải quyết là gì. – Pete

+0

@Pete Tôi đang cố gắng phân tích chuỗi utf-8 thành một vectơ số trước khi gửi chúng vào mạng thần kinh. Tôi không muốn tính năng trích xuất hoặc nén bất kỳ loại nào, mà là một ánh xạ hai chiều của các chuỗi thành các phao. Lý do cho điều này là một phần trong nghiên cứu của tôi về mạng học giả và mạng niềm tin sâu sắc. Tôi không thể đi vào nhiều chi tiết mà không cần viết nhiều trang. Vấn đề hiện tại của tôi là tôi không thể tìm thấy bất kỳ nơi nào có thông tin về cách sử dụng chuỗi văn bản một cách an toàn (độ dài không cố định nhưng với độ dài tối đa) làm đầu vào cho ANN. –

+1

Tôi đoán những gì tôi đang cố gắng tìm ra là, thông tin nào về các từ mà bạn muốn? Đó có phải là ý nghĩa của họ? Có phải bạn đã nói 20 từ và ý nghĩa đặc biệt của chúng là không quan trọng, chỉ từ nào được kết hợp với đầu vào quan trọng? Bạn có nhận được những gì tôi yêu cầu không? Có một số từ cố định có thể là một phần của đầu vào của bạn không? Tôi không nghĩ rằng bạn sẽ có thể thực hiện một "bản đồ hai chiều" thực như bạn muốn nói, trừ khi các chuỗi là các biến thể của độ có thể được sắp xếp theo cách "độ gần" của giá trị float liên kết với " sự gần gũi "của các từ. – Pete

Trả lời

16

Tôi sẽ tiếp tục và tóm tắt thảo luận của chúng tôi làm câu trả lời ở đây.

Mục tiêu của bạn là có thể kết hợp văn bản vào mạng thần kinh của bạn. Chúng tôi đã thiết lập rằng các ANN truyền thống không thực sự phù hợp để phân tích văn bản. Lời giải thích cơ bản về lý do tại sao điều này dựa trên ý tưởng rằng ANN hoạt động trên các đầu vào thường là một phạm vi liên tục của các giá trị và độ gần của hai giá trị cho đầu vào có nghĩa là một số loại gần đúng theo ý nghĩa của chúng. Từ ngữ không có ý tưởng gần gũi và như vậy, không có mã hóa số thực cho các từ có thể có ý nghĩa như đầu vào cho ANN. Mặt khác, giải pháp có thể hoạt động là sử dụng phân tích ngữ nghĩa truyền thống hơn, có thể tạo phạm vi tình cảm cho danh sách chủ đề và sau đó các chủ đề đó và giá trị tình cảm của họ có thể được sử dụng làm đầu vào cho ANN.

+1

cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn. Lý do duy nhất tôi không chấp nhận nó như là một câu trả lời được nêu ra là bởi vì tôi hy vọng cho câu trả lời nhiều hơn và các tùy chọn. –

+0

Vâng, cảm ơn vì tiền thưởng. Hy vọng bạn tìm thấy một giải pháp tổng thể tốt. – Pete

+0

Tôi tin rằng cũng có mạng thần kinh "Ngữ nghĩa", cố gắng giải quyết vấn đề này. Nhưng nó sẽ tách biệt với bất kỳ giá trị đầu vào nào khác vì chúng dường như hoạt động khá khác nhau. Người ta có thể xem xét cho ăn đầu ra của một bộ lọc Bayesian hoặc một cái gì đó để có được văn bản vào biến rời rạc. – Kevin

10

Đáp lại ý kiến ​​của bạn, không, đề án đề xuất của bạn không hoàn toàn có ý nghĩa. Một đầu ra nơron nhân tạo theo bản chất của nó đại diện cho một giá trị liên tục hoặc ít nhất là một giá trị nhị phân. Nó không có ý nghĩa để ánh xạ giữa một liệt kê rời rạc rất lớn (như các ký tự UTF-8) và phạm vi liên tục được biểu diễn bằng một giá trị dấu phẩy động. ANN nhất thiết phải hoạt động như 0.1243573 là xấp xỉ cực kỳ tốt với 0.1243577 khi những con số đó có thể dễ dàng được ánh xạ tới ký tự dòng mới và ký tự "a", ví dụ: không là xấp xỉ tốt cho nhau tại tất cả .

Hoàn toàn thẳng thắn, có không phải là biểu diễn hợp lý cho "chuỗi unicode chung" làm đầu vào cho ANN. Một biểu diễn hợp lý tùy thuộc vào chi tiết cụ thể của những gì bạn đang làm. Tùy thuộc vào câu trả lời của bạn cho các câu hỏi sau:

  • Bạn có mong đợi các từ hiển thị trong chuỗi đầu vào trái ngược với khối ký tự không? Những từ bạn mong đợi để hiển thị trong các chuỗi?
  • Phân phối độ dài của chuỗi đầu vào là bao nhiêu?
  • Entropy dự kiến ​​của các chuỗi đầu vào là gì?
  • Có kiến ​​thức cụ thể về miền mà bạn có về những gì bạn mong đợi các chuỗi trông giống như không?

và quan trọng nhất

  • Bạn đang cố gắng để làm với ANN. Đây là không phải điều gì đó bạn có thể bỏ qua.

thể của bạn có thể có một thiết lập mà có không dịch mà thực sự sẽ cho phép bạn làm gì bạn muốn với các mạng thần kinh. Cho đến khi bạn trả lời những câu hỏi đó (bạn có thể quấn quanh chúng trong các bình luận ở trên), bạn không thể đưa ra câu trả lời hay.

Tôi có thể cung cấp câu trả lời ví dụ , điều đó sẽ hoạt động nếu bạn tình cờ đưa ra một số câu trả lời nhất định cho các câu hỏi trên. Ví dụ, nếu bạn đọc các chuỗi có độ dài tùy ý nhưng bao gồm một từ vựng nhỏ của các từ được phân tách bằng dấu cách, thì tôi sẽ đề xuất một lược đồ dịch mà bạn tạo đầu vào N, một cho mỗi từ trong từ vựng và sử dụng một neural tái phát mạng để nạp vào từng từ một bằng cách đặt đầu vào tương ứng thành 1 và tất cả các số khác thành 0

+1

Cảm ơn bạn. Tôi đã cố gắng tìm ra cách tốt nhất để giải thích điều đó. Bạn đã làm một công việc tuyệt vời! – Pete

+0

@Pete vì vậy làm thế nào để bạn cho rằng tôi có thể nạp văn bản (bất kể mã hóa) vào mạng Neural? Nếu bạn muốn trình bày như đầu vào cho chuỗi ANN, và mong đợi một đầu ra liên quan, làm thế nào để bạn chuyển đổi/ánh xạ văn bản cho điều này? Bạn có ánh xạ từ thay vì ký tự không? Mục đích của tôi là sử dụng ANN (A DBN của các ngăn xếp RBM cụ thể), nơi văn bản được đưa ra làm đầu vào và thu được kết quả đầu ra. –

+1

@ Alex, tôi nghĩ có lẽ bạn không hoàn toàn hiểu được lời giải thích của Jeremy. Nói chung, văn bản không phải là đầu vào hữu ích cho mạng nơron chuẩn. Một lần nữa, tôi sẽ hỏi điều này: Thông tin nào chứa nội dung mà bạn muốn? Bản chất của thông tin chứa trong văn bản mà bạn đang cố bắt giữ là gì. Ý nghĩa của từ ngữ? Các chữ cái kết hợp trong các từ? Đây là điểm mà thực sự cần phải được trả lời trước khi bất cứ ai có thể cung cấp cho bạn bất kỳ loại câu trả lời thực sự về điều này. – Pete

2

Không rõ bạn đang cố gắng làm gì, nhưng tôi đoán rằng nó có vẻ ở một số ý nghĩa liên quan đến những gì mọi người gọi là "Ngôn ngữ tự nhiên". Có rất nhiều tài liệu tham khảo về điều này ... Tôi không phải là một chuyên gia, nhưng tôi biết ví dụ rằng có một số tài liệu tham khảo thú vị của O'Reilly.

Từ góc độ NN, có rất nhiều mô hình NN khác nhau.Tôi nghĩ rằng bạn đang đề cập đến một phổ biến nhất được gọi là Multilayer perceptron với một loại thuật toán backpropagation, nhưng có rất nhiều mô hình của bộ nhớ kết hợp có thể phù hợp hơn cho trường hợp của bạn. Một tài liệu tham khảo rất tốt về điều này là cuốn sách Simon Haykin.

Tuy nhiên, nếu tôi cố gắng làm điều gì đó như thế này, tôi sẽ bắt đầu cố gắng hiểu tần suất của các chữ cái, âm tiết và từ phát sinh cùng nhau bằng tiếng Anh (?).

Tôi hy vọng rằng tôi đã giúp. Như tôi đã nói trước đây, tôi không phải là một chuyên gia trong lĩnh vực này.

+1

Cảm ơn bạn, có nó không phải làm với xử lý ngôn ngữ tự nhiên vì đầu vào được nhận bằng ngôn ngữ tự nhiên, mặc dù điểm thực tế là giải nén thông tin (hoặc kiến ​​thức) từ ngôn ngữ tự nhiên và liên kết nó với một giải pháp. Tại sao bạn đề cập đến tần suất của các chữ cái và âm tiết (bạn không phải là người đầu tiên nói với tôi điều đó)? –

+1

Tôi không chắc chắn những gì bạn đang cố gắng để làm nhưng có buồn rằng ... Trong mọi ngôn ngữ, các chữ cái phát sinh trong các tần số khác nhau. Xem ví dụ http: //en.wikipedia.org/wiki/Letter_frequency ... Nếu có một lá thư còn thiếu trong từ của bạn và bạn không có bất kỳ thông tin nào khác, bạn có thể chỉ cần sử dụng tần suất của các chữ cái trong tiếng Anh . Nếu bạn có âm tiết, bạn có thêm thông tin. Âm tiết cũng phát sinh trong các tần số khác nhau ... Nếu bạn đang nói về các mệnh đề hoàn chỉnh, bạn biết rằng các từ khác nhau có các chức năng khác nhau và lại phát sinh ở các tần số khác nhau ... – DanielTheRocketMan

6

Tôi nghĩ sẽ rất thú vị khi nạp văn bản (được mã hóa ở cấp độ ký tự) vào một mạng niềm tin sâu sắc, để xem những thuộc tính nào của ngôn ngữ mà nó có thể khám phá.

Hiện đã có rất nhiều công việc được thực hiện gần đây trên mô hình Neural Network Ngôn ngữ (chủ yếu là ở cấp văn bản, mà còn ở cấp nhân vật)

Xem những liên kết này để biết thêm

http://www.stanford.edu/group/pdplab/pdphandbook/handbookch8.html http://code.google.com/p/word2vec/

Các vectơ từ được mã hóa bằng cách đào tạo trên một tập hợp lớn các bài viết wikipedia vv .. và đã có thể có được các tính năng ngữ nghĩa và cú pháp, cho phép một khoảng cách "" được xác định giữa chúng "

"Gần đây đã cho thấy rằng vectơ từ nắm bắt được nhiều quy tắc ngôn ngữ, ví dụ vector hoạt động vectơ ('vua') - vectơ ('man') + vectơ ('đàn bà') gần vector ('nữ hoàng') "

Cũng xem bài nghiên cứu tuyệt vời này của Ilya Sutskever về việc tạo các ký tự ngẫu nhiên, thể hiện các tính năng của ngôn ngữ tiếng Anh sau khi được đào tạo trên wikipedia. Công cụ tuyệt vời!

http://www.cs.toronto.edu/~ilya/pubs/2011/LANG-RNN.pdf http://www.cs.toronto.edu/~ilya/rnn.html (! Online thế hệ văn bản văn bản demo - rất mát mẻ)

+0

Xin chào! Cảm ơn các đầu vào! Tôi đã xem bản đồ Tự sắp xếp bản đồ, như Kohonen trong bài báo gốc của mình đã giải quyết vấn đề Thông tin tượng trưng đang được ANN xử lý. Liên kết đầu tiên mà bạn cung cấp có vẻ như sử dụng mạng Neural Recurrent, vì vậy tôi không thể không nghĩ rằng có thể một máy Recurrent Boltzmann có thể xử lý đầu vào văn bản. Cảm ơn bạn về phần còn lại của các liên kết, đặc biệt là liên kết thứ hai, vì tôi có thể thấy bản thân mình sử dụng nó ngay. Trân trọng, Alex. –

0

Giải pháp 1: A = Alt (65) = 65 Bin = 01000001

Giải pháp 2: Thêm từ cơ sở dữ liệu từ điển và thêm trường id (int). Chuyển đổi trường id thành nhị phân.

Trong các chữ cái sử dụng NN hoặc Id từ (nhị phân)

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