নিউরাল নেটওয়ার্ক পার্সিং স্ট্রিং ডেটা?


28

সুতরাং, আমি কেবল শিখতে শুরু করছি যে কোনও নিউরাল নেটওয়ার্ক কীভাবে নিদর্শনগুলি সনাক্ত করতে এবং ইনপুটগুলিকে শ্রেণীবদ্ধ করতে কাজ করতে পারে এবং আমি দেখেছি কীভাবে একটি কৃত্রিম নিউরাল নেটওয়ার্ক চিত্রের ডেটা পার্স করতে এবং চিত্রগুলিকে ( কনফনেটজ সহ ডেমো ) শ্রেণিবদ্ধ করতে পারে এবং সেখানে কী প্রতিচ্ছবিটি নিম্নোক্ত করা এবং প্রতিটি পিক্সেল নেটওয়ার্কে একটি ইনপুট নিউরনকে উদ্দীপিত করে।

যাইহোক, আমি যদি আমার স্ট্রিং ইনপুটগুলি দিয়ে এটি করা সম্ভব হয় তবে আমার মাথা গুটিয়ে ফেলার চেষ্টা করছি? আমি যে ইউজ-কেসটি পেয়েছি তা হ'ল কোনও সিনেমা দেখে "সুপারিশ ইঞ্জিন"। সিনেমাগুলির প্রচুর স্ট্রিং ডেটা (শিরোনাম, প্লট, ট্যাগ) থাকে এবং আমি সেই মুভিটি বর্ণনা করে এমন কয়েকটি মূল শব্দকে টেক্সটটি "ডাউনস্যাম্পলিং" ভাবতে পারি, তবে আমি এই মুভিটি বর্ণনা করে এমন শীর্ষ পাঁচটি শব্দও পার্স করে নিলেও, আমি সিনেমার একটি সেট তুলনা করার জন্য আমার প্রতিটি ইংরেজি শব্দের জন্য ইনপুট নিউরন দরকার? আমি ইনপুট নিউরনগুলিকে কেবল সেটে ব্যবহৃত শব্দের মধ্যে সীমাবদ্ধ রাখতে পারতাম, তবে তারপরে কী নতুন সিনেমা যুক্ত করে এটি বাড়তে / শিখতে পারে (ব্যবহারকারী নতুন শব্দ সহ নতুন চলচ্চিত্র দেখেন)? আমি দেখেছি বেশিরভাগ লাইব্রেরি সিস্টেম প্রশিক্ষিত হওয়ার পরে নতুন নিউরন যুক্ত করার অনুমতি দেয় না?

নিউরাল নেটওয়ার্কের ইনপুটগুলিতে স্ট্রিং / শব্দ / চরিত্রের ডেটা মানচিত্রের কোনও স্ট্যান্ডার্ড উপায় আছে কি? অথবা একটি নিউরাল নেটওয়ার্ক কী এই জাতীয় স্ট্রিং ডেটা পার্সিংয়ের কাজের জন্য সঠিক সরঞ্জাম নয় (স্ট্রিং ডেটাতে প্যাটার্ন-ম্যাচের জন্য আরও ভাল সরঞ্জাম কী)?

উত্তর:


19

প্রাকৃতিক ভাষার ডেটা সম্পর্কে ভবিষ্যদ্বাণী করার জন্য নিউরাল নেটওয়ার্ক ব্যবহার করা একটি কঠিন কাজ হতে পারে, তবে এটি সম্ভব করার জন্য এখানে চেষ্টা করা হয়েছে এবং সত্য পদ্ধতি রয়েছে methods

প্রাকৃতিক ভাষা প্রসেসিং (এনএলপি) ক্ষেত্রে, পাঠ্যটি প্রায়শই শব্দগুলির ব্যাগ ব্যবহার করে প্রতিনিধিত্ব করা হয়। অন্য কথায়, আপনার দৈর্ঘ্য n এর একটি ভেক্টর রয়েছে , যেখানে এন আপনার শব্দভাণ্ডারের শব্দের সংখ্যা এবং প্রতিটি শব্দ ভেক্টরের একটি উপাদানের সাথে মিলে যায়। পাঠ্যকে সংখ্যাসূচক তথ্যতে রূপান্তর করতে, আপনি কেবল প্রতিটি শব্দের সংখ্যার সংখ্যা গণনা করুন এবং শব্দের সাথে অনুরূপ ভেক্টরের সূচকে সেই মানটি রেখে দিন। উইকিপিডিয়া এই রূপান্তর প্রক্রিয়াটি বর্ণনা করার জন্য একটি দুর্দান্ত কাজ করে। ভেক্টরের দৈর্ঘ্য নির্ধারিত হওয়ার কারণে, নতুন শব্দের সাথে কাজ করা কঠিন যা সূচকে মানচিত্র দেয় না, তবে এই সমস্যাটি হ্রাস করতে সহায়তা করার উপায় রয়েছে (অনুসন্ধানের বৈশিষ্ট্য হ্যাশিং )।

উপস্থাপনের এই পদ্ধতির অনেকগুলি অসুবিধা রয়েছে - এটি সংলগ্ন শব্দের মধ্যে সম্পর্ক সংরক্ষণ করে না এবং ফলস্বরূপ খুব বিরল ভেক্টরগুলির ফলাফল রাখে। এ খুঁজছি এন-গ্রাম শব্দ সম্পর্ক সংরক্ষণের সমস্যা সমাধানের জন্য, কিন্তু এখন জন্য দ্বিতীয় সমস্যা উপর ফোকাস, sparsity দিন সহায়তা করে।

এই বিচ্ছুরিত ভেক্টরগুলির সাথে সরাসরি মোকাবেলা করা কঠিন (অনেক লিনিয়ার বীজগণিত গ্রন্থাগারগুলি স্পার্স ইনপুটগুলি পরিচালনা করার ক্ষেত্রে খারাপ কাজ করে), তাই প্রায়শই পরবর্তী ধাপটি মাত্রিকতা হ্রাস হয়। তার জন্য আমরা টপিক মডেলিংয়ের ক্ষেত্রটি উল্লেখ করতে পারি : ল্যাটেন্ট ডিরিচলেট অলোকেশন (এলডিএ) এবং ল্যাটেন্ট সিমেেন্টিক অ্যানালাইসিস (এলএসএ) এর মতো কৌশলগুলি এই সংলাপযুক্ত ভেক্টরকে সংশ্লেষের জন্য বিষয়গুলির সংমিশ্রণ হিসাবে একটি নথির প্রতিনিধিত্ব করে ঘন ভেক্টরগুলিতে সংকোচন করতে দেয়। আপনি ব্যবহৃত বিষয়গুলির সংখ্যাটি ঠিক করতে পারেন এবং এটি করে এলডিএ বা এলএসএ দ্বারা উত্পাদিত আউটপুট ভেক্টরের আকার ঠিক করতে পারেন। এই মাত্রিকতা হ্রাস প্রক্রিয়াটি ন্যূনতম পরিমাণে তথ্য হারাতে চেষ্টা করার সময় ইনপুট ভেক্টরের আকারকে মারাত্মকভাবে হ্রাস করে।

অবশেষে, এই সমস্ত রূপান্তরের পরে, আপনি টপিক মডেলিং প্রক্রিয়াটির ফলাফলগুলি আপনার নিউরাল নেটওয়ার্কের ইনপুটগুলিতে ফিড করতে পারেন।


1
আপনার যদি আরও প্রশ্ন থাকে তবে আমাকে জানান এবং আমি আরও কিছু বিশদ দেওয়ার জন্য যথাসাধ্য চেষ্টা করব।
ম্যাডিসন মে

ধন্যবাদ, এটি আমাকে অন্বেষণ চালিয়ে যেতে কিছু দুর্দান্ত শর্ত দেয়!
মিডনাইটলাইটিং

ঘটনাক্রমে, আমি "ফিচার হ্যাশিং" এর সাথে সম্পর্কিত হতে পারি যেহেতু এটি একটি ব্লুম ফিল্টারের সাথে খুব মিল , যা আমি ক্রিপ্টোকারেন্সি কোডের সাথে কাজ করা থেকে পরিচিত। আমি ভাবছি যদি এটি একটি হ্যাশ ফাংশন একটি সূচক চিহ্ন সেট করতে একটি দ্বিতীয় হ্যাশ ফাংশন একাধিক সূচক অবস্থানের (পুষ্প-Filter-শৈলী) বরং প্রয়োজন চেয়ে একটি ইনপুট বৈশিষ্ট্য কহা আছে আরো কার্যকর হয় ...
MidnightLightning

6

@ এমরে এবং @ ম্যাডিসনের উত্তর দুটিই ইস্যু সম্পর্কে ভাল বক্তব্য রাখতে পারে। এনএন-তে ইনপুট দেওয়ার জন্য বৈশিষ্ট্য ভেক্টর হিসাবে আপনার স্ট্রিংটি উপস্থাপন করার মধ্যে সমস্যাটি হ'ল।

প্রথমত, সমস্যাটি আপনি প্রক্রিয়া করতে চান তার স্ট্রিংয়ের আকারের উপর নির্ভর করে। মে টোকেন (সাধারণত শব্দ) যুক্ত দীর্ঘ স্ট্রিংগুলিকে প্রায়শই এই সেটিংয়ে নথি বলা হয়। স্বতন্ত্র টোকেন / শব্দ ব্যবহার করার জন্য পৃথক পদ্ধতি রয়েছে।

নথিগুলি উপস্থাপন করার বিভিন্ন উপায় রয়েছে। তাদের মধ্যে অনেকেই ব্যাগ-অফ-শব্দের ধারনা তৈরি করে। সরলতম প্রকারগুলি শব্দের পরিসংখ্যানগুলির একটি ভেক্টর বা শব্দ ফ্রিকোয়েন্সি (টিএফ) হিসাবে নথিটিকে উপস্থাপন করে। নথির দৈর্ঘ্যের প্রভাবগুলি নির্মূল করার জন্য, সাধারণত লোকেরা একটি শব্দটিতে ডকুমেন্টের ফ্রিকোয়েন্সি ( টিএফ-আইডিএফ ) প্রদর্শিত হওয়া নথির সংখ্যা দ্বারা সাধারণকরণ পছন্দ করে ।

আর একটি পদ্ধতি হ'ল টপিক মডেলিং, যা উপাত্তগুলির একটি সুপ্ত নিম্ন-মাত্রিক উপস্থাপনা শেখে। এলডিএ এবং এলএসআই / এলএসএ সাধারণ পছন্দ, তবে এটি মনে করা গুরুত্বপূর্ণ যে এটি নিরীক্ষণযোগ্য। শিখানো প্রতিনিধিত্ব অগত্যা আপনার এনএন এর সাথে তদারকি করা শিক্ষার জন্য আদর্শ হবে না। আপনি যদি টপিক মডেলিং করতে চান তবে আপনি তত্ত্বাবধানে থাকা টপিক মডেলগুলিও চেষ্টা করতে পারেন ।

স্বতন্ত্র শব্দের জন্য, আপনি word2vec ব্যবহার করতে পারেন , যা একটি স্বেচ্ছাসেবী আকারের জায়গাতে শব্দগুলি এম্বেড করতে NN গুলি ব্যবহার করে। এই শিখানো জায়গাতে দুটি শব্দের ভেক্টরের মধ্যে সাদৃশ্যটি শব্দার্থক মিলের সাথে মিলে যায়।

একটি সাম্প্রতিক অগ্রগামী পদ্ধতির অনুচ্ছেদ ভেক্টরগুলির , যা প্রথমে ওয়ার্ড টুভেক-জাতীয় শব্দের মডেল শিখেছে, তারপরে শব্দের সেটগুলির বিতরণ উপস্থাপনা (যে কোনও আকারের নথি) শেখার জন্য সেই উপস্থাপনাটি তৈরি করে। এটি অনেক অ্যাপ্লিকেশনগুলিতে অত্যাধুনিক ফলাফল দেখিয়েছে।

এনএলপিতে এনএন ব্যবহার করার সময়, লোকেরা প্রায়শই বিভিন্ন আর্কিটেকচার ব্যবহার করে, যেমন পুনরাবৃত্ত নিউরাল নেট ( লং শর্ট টার্ম মেমরি নেটওয়ার্কগুলির মতো)। ইন কিছু ক্ষেত্রে মানুষ এমনকি ব্যবহার করেছেন Convolutional নিউরাল নেটওয়ার্ক টেক্সট উপর।


আমি মনে করি ওয়ার্ড টুভেক আসলেই প্রশ্নের সবচেয়ে সঠিক উত্তর। কীভাবে প্রশিক্ষণ ও এটি ব্যবহার করতে হয় সে সম্পর্কে একটি দুর্দান্ত কাগল টিউটোরিয়াল রয়েছে: kaggle.com/c/word2vec-nlp-tutorial/details/part-2-word-vectors
jagartner

ধন্যবাদ, আমি শব্দটি 2 লিঙ্কটি ভুলে গিয়েছি, আমি একটি যুক্ত করব (আপনি এখানে
তালিকাবদ্ধ করা

3

এটি প্রতি সেচ নিউরাল নেটওয়ার্কগুলি সম্পর্কে সমস্যা নয়, তবে মেশিন লার্নিংয়ে পাঠ্যগত ডেটা উপস্থাপন করার বিষয়ে। আপনি মুভিগুলি, কাস্ট এবং থিমকে শ্রেণিবদ্ধ ভেরিয়েবল হিসাবে উপস্থাপন করতে পারেন। চক্রান্ত আরও জটিল; আপনি সম্ভবত এটির জন্য কোনও টপিকের মডেল চাইবেন, তবে জিনিসগুলি ঝুলিয়ে না দেওয়া পর্যন্ত আমি এটি ছেড়ে চলে যাব। এটি আপনি যে উল্লিখিত পাঠ্য "ডাউনস্যাম্পলিং" অবিকল তা করেন।

নিউরাল নেটওয়ার্কগুলির জন্য শ্রেণীবদ্ধ ভেরিয়েবলগুলি কীভাবে এনকোড করা যায় তা জানতে এই টিউটোরিয়ালটি একবার দেখুন । এবং সৌভাগ্য!


লক্ষণীয় যে মেশিন লার্নিংয়ের ক্ষেত্রে এটি স্পষ্টভাবে কোনও সমস্যা নয়, তবে কেবল তখনই সমস্যা যখন বৈশিষ্ট্য ভেক্টর তৈরি করার কথা আসে, যা মেশিন লার্নিংয়ে সর্বব্যাপী নয়।
স্লেটার ভিক্টোরফ 20

কোন ধরণের মেশিন লার্নিং বৈশিষ্ট্যগুলি ব্যবহার করে না?
এমরে

র্যান্ডম অরণ্য এমন কোনও কিছুর একটি ভাল উদাহরণ যার জন্য আপনি নিউরাল জালগুলিতে যে ধরণের সাজ দেখেন তার বৈশিষ্ট্য ভেক্টর পাওয়া কোনও বিষয় নয়। বৈশিষ্ট্যযুক্ত ভেক্টরগুলির চেয়ে কাঁচা শব্দের উপরেও অনেকগুলি অচলিত পদ্ধতি ব্যবহার করে। দ্রষ্টব্য: আমি বলিনি এমন কিছু পদ্ধতি রয়েছে যা বৈশিষ্ট্যগুলি ব্যবহার করে না, কেবলমাত্র এমন পদ্ধতি রয়েছে যা কঠোরভাবে কাঠামোগত ভেক্টরগুলির উপর নির্ভর করে না।
স্লেটার ভিক্টোরফ

"কড়া কাঠামোগত" বলতে আপনি কী বোঝেন তা আমি জানি না।
এমরে

ডিকশনারি, ওজন ম্যাট্রিক্স এবং একটি ধারাবাহিক স্ট্রিংযুক্ত তালিকার বিপরীতে ইউনিট 8 এর 1 ডি ভেক্টর কঠোরভাবে কাঠামোগত
স্লটার ভিক্টোরফ

0

আমি টেক্সট সহ নিউরাল নেটওয়ার্কগুলির ট্রায়াল-এন-টেস্ট প্রয়োগের জন্য নিম্নলিখিত 2 টি উপায় চেষ্টা করেছি। দ্বিতীয়টি মোটামুটি ভাল কাজ করে তবে সীমাবদ্ধতার সাথে।

  1. ওয়ার্ড টুভেক্ট বা এনএলটিকে / কাস্টম ওয়ার্ড টোকেন ব্যবহার করে ভোকাবুলারি তৈরি করুন এবং প্রতিটি শব্দের একটি সূচক বরাদ্দ করুন। এটি এই সূচকটি যা সংখ্যা হিসাবে শব্দটি উপস্থাপন করে।

    চ্যালেঞ্জ:

    • বৈশিষ্ট্য স্কেলিং ব্যবহার করে সূচিগুলি অবশ্যই "স্বাভাবিকীকরণ" করা উচিত।
    • যদি নিউরাল নেটওয়ার্কের আউটপুটটিতে আরও কিছুটা ভিন্নতা থাকে তবে আউটপুটটি অপ্রত্যাশিত শব্দের সূচক হতে পারে (যেমন প্রত্যাশিত আউটপুট 250 হয়; তবে এনএন 249 বা 251 আউটপুট দেয় তবে এটি সংখ্যার প্রেক্ষাপটে একটি নিকট আউটপুট হতে পারে; তবে তারা বিভিন্ন শব্দের সূচক হয়)। আউটপুট সূচক উত্পন্ন করতে পুনরাবৃত্ত এনএন এখানে লাভ করা যেতে পারে।
    • শব্দভাণ্ডারে যদি নতুন শব্দ যুক্ত হয়, তবে টোকেন সূচীগুলি আবার স্কেল করা উচিত। পূর্ববর্তী স্কেল করা মানগুলির সাথে প্রশিক্ষিত মডেলটি অবৈধ হয়ে উঠতে পারে এবং পুনরায় প্রশিক্ষিত হতে হবে।
  2. পরিচয় ম্যাট্রিক্স উদাহরণস্বরূপ "এন" শব্দের জন্য "এনএক্স এন" বা (এন -1 এক্স এন -1) ম্যাট্রিক্স ব্যবহার করুন যেখানে প্রতিটি সারি এবং কলাম একটি শব্দের প্রতিনিধিত্ব করে। ছেদ কক্ষে "1" এবং বিশ্রাম স্থানে "0" রাখুন। ( রেফারেন্স )

    চ্যালেঞ্জ:

    • প্রতিটি ইনপুট এবং আউটপুট মান "এনএক্স 1" ভেক্টর। বড় আকারের শব্দভাণ্ডারের জন্য এটি একটি ভারী গণনা এবং ধীর।
    • শব্দভাণ্ডারে যদি নতুন শব্দ যুক্ত হয়, তবে পরিচয় ম্যাট্রিক্স (অর্থাত্ শব্দ ভেক্টর) পুনরায় গণনা করা উচিত। পূর্বে গণনা করা ভেক্টর দিয়ে প্রশিক্ষিত মডেলটি অবৈধ হয়ে উঠতে পারে এবং পুনরায় প্রশিক্ষিত হতে হবে।
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.