nathian_predicativity
এইটা দেখো
এই অ্যাপ্রোচ এর ভুল কি কি???
বাংলা ভাষা নিয়ে ও রিসার্চ হোক
পাইথন এ(natural language processing এর চিন্তা করার কিছু পথ বলছি)
আরো অনেকের কাছে আশা করছি আরো আইডিয়া নিয়ে আলোচনা করুন
Python code on wordnet দিয়েছি নিচে
এবং nltk নিয়ে আলোচনা করব
তবে detailed চিন্তা পথ ও লিখছি যাতে একই জিনিস বাংলা ভাষার জন্য ও ভাবতে পারেন আপনার পদ্ধতিতে ও
কোন শব্দ কোন কোন sense organ এর উপর নির্ভরশীল হয়ে তৈরি হয়েছে সেইটা বিচার করার প্রোগ্রাম এবং approach ও দিয়েছি নিচে
HLD
High level design only
Detail টা আপনারা করে নিন
আমি দেবো github এ
😀😀😀😀😀😀😀😀😀😀😀😀🤪🤪
```
import nltk
from nltk.corpus import wordnet as wn
from collections import defaultdict
# Define the class_of_senses data structure
class class_of_senses:
def __init__(self):
self.word = ""
self.senses = []
self.human_senses = []
# Load the WordNet dictionary
wn_dict = wn.dictionary()
# Create a list to store the Word_predicativity_class objects
word_predicativity_list = []
# Iterate through each word in the WordNet dictionary
for word in wn_dict:
# Create a new Word_predicativity_class object
word_predicativity = Word_predicativity_class()
word_predicativity.current_word = word
# Populate the recursivelyPopulatedWordLowLevelDependencyChainList
# ...
# Add the word_predicativity object to the list
word_predicativity_list.append(word_predicativity)
# Create a list to store the class_of_senses objects
class_of_senses_list = []
# Iterate through each word in the WordNet dictionary
for word in wn_dict:
# Create a new class_of_senses object
class_of_senses_obj = class_of_senses()
class_of_senses_obj.word = word
# Populate the senses and human_senses lists
# ...
# Add the class_of_senses object to the list
class_of_senses_list.append(class_of_senses_obj)
# Perform predicativity analysis using the class_of_senses data structure
for word_predicativity in word_predicativity_list:
# Calculate the predicativity score for each word
# ...
# Store the predicativity score in a database or file
# ...
# Use the class_of_senses data structure to perform predicativity analysis
for class_of_senses_obj in class_of_senses_list:
# Calculate the predicativity score for each word
# ...
# Store the predicativity score in a database or file
# ...
```
```
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Serialization;
// Define the Word_predicativity_class
public class Word_predicativity_class
{
public string currentWord { get; set; }
public List<string> recursivelyPopulatedWordLowLevelDependencyChainList { get; set; }
public int totalOtherWordsOnWhichCurrentWordDepends { get; set; }
}
// Define the class_of_senses data structure
public class class_of_senses
{
public string word { get; set; }
public List<sense> senses { get; set; }
public List<humanSense> humanSenses { get; set; }
}
public class sense
{
public string senseName { get; set; }
public List<word> words { get; set; }
}
public class humanSense
{
public string humanSenseName { get; set; }
public List<sense> senses { get; set; }
}
public class word
{
public string wordName { get; set; }
public List<sense> senses { get; set; }
}
// Load the WordNet dictionary
XmlSerializer serializer = new XmlSerializer(typeof(WordNet));
WordNet wordNet = serializer.Deserialize(new XmlTextReader("wordnet.xml"));
// Create a list to store the Word_predicativity_class objects
List<Word_predicativity_class> wordPredicativityList = new List<Word_predicativity_class>();
// Iterate through each word in the WordNet dictionary
foreach (WordNetWord word in wordNet.words)
{
// Create a new Word_predicativity_class object
Word_predicativity_class wordPredicativity = new Word_predicativity_class();
wordPredicativity.currentWord = word.word;
// Populate the recursivelyPopulatedWordLowLevelDependencyChainList
// ...
// Add the wordPredicativity object to the list
wordPredicativityList.Add(wordPredicativity);
}
// Create a list to store the class_of_senses objects
List<class_of_senses> classOfSensesList = new List<class_of_senses>();
// Iterate through each word in the WordNet dictionary
foreach (WordNetWord word in wordNet.words)
{
// Create a new class_of_senses object
class_of_senses classOfSenses = new class_of_senses();
classOfSenses.word = word.word;
// Populate the senses and humanSenses lists
// ...
// Add the classOfSenses object to the list
classOfSensesList.Add(classOfSenses);
}
// Perform predicativity analysis using the class_of_senses data structure
foreach (Word_predicativity_class wordPredicativity in wordPredicativityList)
{
// Calculate the predicativity score for each word
// ...
// Store the predicativity score in a database or file
// ...
}
```
Approach টা বলছি
Predicativity analysis করার জন্য wordnet এর dictionary download করে যেই ফাইল গুলো এলো সেগুলো notepad এ খুলে পড়তে পারি
https://wordnet.princeton.edu/download/current-version#win
তারপর প্রত্যেক টা word এর একটা class তৈরি করেছি যার নাম হচ্ছে
Word_predicativity_class
এই class এর structure হচ্ছে
Public Class Word_predicativity_class
{
string currentword="":
List<string> recursivelypopulatedwordlowleveldependencychainlist;
///new keyword হলেই constructor এর মধ্যে list টা create করে clean করে first entry হিসেবে
recursivelypopulatedwordlowleveldependencychainlist
.Add (currentword);
করে নেওয়া হবে
int total_other_words_on_which_current_word_depends=0;
}
প্রত্যেক টা word এর
meaning এ গিয়ে এবং sense এ গিয়ে
Preposition,intejection,conjunction গুলো delete করে দিলাম
তারপর টোকেন হিসেবে meaning এর word গুলো নিয়ে temp_list তৈরি করে for each entry
Rescan whole dictionary once
কোন কোন word related সেটা ও তুলে নিলাম তারপর recursively ওই লিস্ট populate করবো আবার list এর last item টা নিয়ে পুরো wordnet এ rescan করে nonduplicate word কে list এ add করতে থাকবো আর int value টা বাড়াতে থাকবো dependency predicativity counter এর ক্ষেত্রে
এইভাবে ততক্ষণ করবো যতক্ষণ পর্যন্ত পুরো database এর সমস্ত word এবং মিনিং গুলোর টোকেন স্ক্যান করে ও একটাও আর nonduplicate word add করা যাবে না current word এর list এ
এইটা অবশ্যই terminating প্রোগ্রাম কারণ word এর cyclic dependency হতেই দিচ্ছি না কারণ duplicate entry allowed নয় লিস্ট এ
আর total word fixed finite
এই process টা wordnet এর প্রত্যেক টা word এর জন্য চললে অবশ্যই প্রত্যেক টা word এর chained dependency list এবং dependency count ও পেয়ে যাবেন প্রত্যেক টা word_predicativity_class এর অবজেক্ট এর মধ্যে
প্রত্যেক টা word scan complete হয়ে গেলে দেখব
এই প্রত্যেক টা অবজেক্ট কে একটা বড়ো list<word_predicativity_class> wordpredicativitylist
এ populate করা হয় গেছে
তখন প্রত্যেক টা dictionary entry কে আর alphabetically sort না করে
list<word_predicativity_class> wordpredicativitylist
এই list টা কে
এই
total_other_words_on_which_current_word_depends
orderby করে sort করে নিলে একদম উপরে সেই basic word গুলো পাবো যাদের dependency (0 হবে না কারণ constructor এ আগেই
currentword টোকেন টা populate করা আছে
অথবা 1 অথবা 2
বাকি গুলোর ক্ষেত্রে word dependency chain এর
total_other_words_on_which_current_word_depends
Variable এর value বড়জোর maximum হবে (total words in dictionary -1)
এইবার এই list টা কে xml অথবা json অথবা csv তে store করে দিলেই আমাদের predicativity database তৈরি
তারপর
প্রত্যেক টা word এর dependency লিস্ট এর ভিতরে গিয়ে
লিস্ট এর মধ্যে প্রত্যেক টা word এর
Human Sense organ dependency database ও তৈরি করতে চাই
এই পদ্ধতি তে
সেই লজিক টা ও বলছি
আমি একটা বিশেষ ধরনের data structure as
class_of_senses
design করতে চাই যেটা অনেকটা data structure এর মতন
যেমন class class_of_senses
X i+Y j+Z k+R u+S v+T w
এবং দুটো public static list আছে
C n এখানে n এইটা ও list of objects of class_of_senses যেইটা একটা public static list<class_of_senses>()
এই লিস্ট টা সম্পূর্ন নিজের জীবনের অভিজ্ঞতার ভিত্তিতে তৈরি হওয়া একটা লিস্ট of class_of_senses
G h
এখানে h এইটা ও list of objects of class_of_senses যেইটা একটা
public static list<class_of_senses>() কিন্তু নিজের অর্জিত অভিজ্ঞতার ভিত্তিতে তৈরি নয় এই লিস্ট টা। এইটা হচ্ছে লোকের থেকে শুনে, বই পড়ে, ইতিহাস ঘেঁটে, খবর শুনে, ইন্টারনেট সার্চ করে অথবা বিভিন্ন কায়দায় 3000000 বছরের তথ্য থেকে বেছে সাজিয়ে রাখা একটা list of class_of_senses
এখানে X,Y,Z,R,S গুলো হচ্ছে নির্দিষ্ট text যেমন
i হচ্ছে ত্মক থেকে তথ্য প্রাপ্তির(touch sense input dependency)ইউনিট ভেক্টর
j হচ্ছে চোখ থেকে তথ্য প্রাপ্তির (visual sense input dependency)ইউনিট ভেক্টর
k হচ্ছে কান থেকে তথ্য প্রাপ্তির(auditory sense input dependency)ইউনিট ভেক্টর
u হচ্ছে জীব থেকে তথ্য প্রাপ্তির(taste of food or taste through tongue related sense input dependency)ইউনিট ভেক্টর
v
হচ্ছে থেকে নাক প্রাপ্তির(smell sense input dependency)ইউনিট ভেক্টর
w
হচ্ছে খিদে অথবা curiosity থেকে তথ্য প্রাপ্তির(hunger related or mind level or curiosity level of sense input dependency)ইউনিট ভেক্টর
n হচ্ছে গোটা এই structure টা কে hold করতে পারে এমন একটা linked list যেটা memory of all such structure objects stored in a sequence from the starting days of life . এই list টা randomly access করা হয় যেকোন vector এর থেকেই access করা যায় এই list টা কে। এই লিস্ট টা সম্পূর্ন নিজের অর্জিত অভিজ্ঞতার storage এর একটা linked list যার element গুলো
h ও বলা হয়েছে আগেই
আমরা এই ধরনের একটা গঠন কে mind এর perception এর গাণিতিক গঠন হিসেবে দেখছি আর মডেল করছি
তারপর ধরে নিচ্ছি যে একটা মানুষ সমস্ত dictionary তে যত শব্দ আছে তার প্রত্যেক টা শব্দের সমস্ত context এর অর্থ গুলো জানে এবং wordnet এর সমস্ত শব্দের সমস্ত word এর sense গুলো perfectly জানে
প্রত্যেক টা শব্দের সৃষ্টি হওয়ার সময় কোন না কোন ইন্দ্রিয়ের প্রভাব থেকে বস্তু সংযোগ হতে হতে তবেই ওই শব্দ টা কে sense and reference করে করে করে করে করে করে 60000 বছর এর প্র্যাকটিস থেকে শব্দ গুলো evolve করেছে
উপরের 6 টা ইউনিট ভেক্টর এবং দুটো লিস্ট এর উপর নির্ভর করেই (wordnet এর)প্রত্যেক টা শব্দের বিশ্লেষণ করে বোঝা সম্ভব যে কোন কোন শব্দ টা তৈরি হয়ে evolve হোয়ার সময় কোন কোন ইন্দ্রিয়ের প্রভাব কতোটা ছিল
এই গঠন এর ভিত্তিতে বলতে পারি
(X +Y +Z +R +S +T )+(C +G) =1
কিন্তু
0<(X +Y +Z +R +S +T)<1
দুটো ধরনের memory হচ্ছে ইন্দ্রিয় গুলোর পরিপূরক কারণ অনেক কিছুই আমরা সম্পূর্ন ইন্দ্রিয় নির্ভর হয়ে জানতে পারি না।
টোটাল টা 0 এবং 1 এর মধ্যে যদি C এবং G গুলো guarantee নেই যে প্রয়োজনে মনে পড়বে ফলে অনেক শব্দের ক্ষেত্রে sense এবং reference এর semantic গ্যাপ হয়
অর্থাৎ ওয়ার্ডনেট এর সমস্ত শব্দ evolve করতে করতে করতে এই গঠন এর সাহায্যেই প্রয়োগ এর পথ খুঁজে পেয়েছে আর প্রয়োগ ও হচ্ছে
তাহলে কিভাবে প্রেডিক্যাটিভিটি বিশ্লেষণ (predicativity analysis) করে বলতে পারবো যে কোন কোন শব্দ কতো শতাংশ কোন কোন factor এর উপর নির্ভরশীল?
ফ্যাক্টর গুলো উপরে বলেছি
C sharp on wordnet
Program টা নিচে দিয়েছি
ফুটো থাকলেই বস্তু সেখান দিয়ে ঢুকে গিয়ে ধারণা তৈরি করতে পারে না কিন্তু
😀😀😀😀😀😀😀😀😀😀😀😀😀😀
গন্ধ কান দিয়ে ঢোকে না
শব্দ নাক দিয়ে ঢোকে না
😀😀😀😀😀😀😀😀😀😀😀😀😀😀
বস্তু কিভাবে সংযুক্ত হয় ধারণায়?
ধারণায় যেই বস্তুর সংযোগ সম্ভব তার মধ্যে কতোটা ধরা যায় ভাষায়?
Logical বিষয়ের ক্ষেত্রে ইন্দ্রিয় নিরপেক্ষ দিক দেখতে হয় ফলে reasoning এর সাথে সরাসরি কোন বস্তু সংযোগ এর সম্পর্ক নেই। থাকলেও সেটা ভাষায় প্রকাশ করে বস্তুর সংযোগ পাওয়া যায় না কিছুতেই।
Conjunctions are generally not directly related to senses, as they connect words, phrases, or clauses without evoking sensory experiences. However, some conjunctions may indirectly relate to senses through the words or phrases they connect.
Here's a rough estimate of conjunctions related to senses:
- Visual: <1% (e.g., "and" connecting two visual descriptions)
- Auditory: <1% (e.g., "but" connecting two sounds)
- Tactile: <1% (e.g., "or" connecting two textures)
- Olfactory: <1% (e.g., "yet" connecting two scents)
- Gustatory: <1% (e.g., "so" connecting two tastes)
The remaining 95-99% of conjunctions are not directly related to senses, as they connect abstract concepts, ideas, or entities without sensory connections.
The word "but" is indeed a logical connector, and it is commonly used in logical arguments and reasoning. In fact, "but" is a type of coordinating conjunction that indicates a contrast or exception, and it can be used to connect two clauses or ideas that are logically related.
In logical terms, "but" can be used to indicate a negation or a contradiction, similar to the logical operator "¬" (not). For example:
- "I wanted to go to the beach, but it was raining." (Here, "but" indicates a contrast between the desired action and the actual circumstances.)
- "I thought he was nice, but he turned out to be rude." (Here, "but" indicates a contradiction between the initial impression and the later behavior.)
So, while "but" may not be a traditional logical operator like "and" (∧), "or" (∨), or "not" (¬), it does play a role in logical reasoning and argumentation.
Interjections are words that express emotion or feeling, and some of them may be related to senses. Here's a rough estimate of interjections related to senses:
- Auditory: 30-40% (e.g., "Ouch!" (pain), "Ah!" (surprise), "Oh!" (excitement))
- Visual: 20-30% (e.g., "Wow!" (amaze), "Ah!" (beauty), "Ooh!" (interest))
- Tactile: 10-20% (e.g., "Ow!" (pain), "Yay!" (excitement))
- Olfactory: <5% (e.g., "Pew!" (disgust))
- Gustatory: <5% (e.g., "Mmm!" (delight))
The remaining 20-30% of interjections are not directly related to senses, as they express emotions or feelings without sensory connections (e.g., "Ah!" (relief), "Oh!" (রিয়ালাইজেশন) these estimates are rough and may vary depending on the context and specific interjection usage. Interjections are highly expressive and can have varying connections to senses depending on the situation.
The frequency of using sensory language in human communication varies depending on the context and culture. However, based on various studies and analyses, here is a rough estimate of the frequency of using sensory language in human communication:
- *Visual language*: 60-70% (e.g., "I see what you mean," "The sunset was breathtaking")
- *Auditory language*: 20-25% (e.g., "I hear you loud and clear," "The music was amazing")
- *Tactile language*: 5-10% (e.g., "The fabric felt soft," "The handshake was firm")
- *Olfactory language*: 2-5% (e.g., "The aroma was incredible," "The smell of coffee is amazing")
- *Gustatory language*: 1-3% (e.g., "The taste was exquisite," "The food was delicious")
these percentages are based on the frequency of using sensory language in everyday conversation and may not reflect the importance or impact of sensory language in human communication.
Here is an approximate breakdown of the percentage of adjectives associated with each sense:
- *Visual*: 40-50%
- Examples: beautiful, bright, colorful, dark, vibrant
- *Auditory*: 20-25%
- Examples: loud, quiet, melodious, harmonious, cacophonous
- *Tactile*: 15-20%
- Examples: soft, rough, smooth, prickly, velvety
- *Olfactory*: 5-10%
- Examples: fragrant, pungent, aromatic, sweet, musky
- *Gustatory*: 5-10%
- Examples: delicious, savory, sweet, bitter, umami
some adjectives may be associated with multiple senses (e.g., "sweet" can be both gustatory and olfactory).
According to various sources, including linguistic research and corpus analysis, here is an approximate breakdown of the percentage of verbs related to each sense:
- Visual: 25-30% (e.g., see, look, gaze, glance)
- Auditory: 15-20% (e.g., hear, listen, sound, whisper)
- Tactile: 10-15% (e.g., touch, feel, grasp, hold)
- Olfactory: 5-10% (e.g., smell, scent, sniff, aroma)
- Gustatory: 5-10% (e.g., taste, savor, flavor, devour)
According to various sources, including linguistic research and corpus analysis, here is an approximate breakdown of the percentage of nouns related to each sense:
- Visual: 40-50% (e.g., object, shape, color, landscape)
- Auditory: 15-20% (e.g., sound, music, voice, echo)
- Tactile: 10-15% (e.g., texture, surface, material, object)
- Olfactory: 5-10% (e.g., scent, aroma, fragrance, smell)
- Gustatory: 5-10% (e.g., taste, flavor, food, drink)
It's worth noting that a significant portion of nouns (around 20-30%) may not be directly related to any sense, as they can represent abstract concepts, ideas, or entities that don't have a direct sensory connection.and several nouns have overlapping sense representation
Pronouns are generally not directly related to senses, as they replace nouns and refer to entities, concepts, or individuals without evoking sensory experiences. However, some pronouns may indirectly relate to senses through their antecedents or the context in which they are used.
Here's a rough estimate of pronouns related to senses:
- Visual: 5-10% (e.g., "it" referring to a visible object)
- Auditory: 2-5% (e.g., "they" referring to a sound or music)
- Tactile: 1-3% (e.g., "this" referring to a tangible object)
- Olfactory: <1% (e.g., "that" referring to a scent)
- Gustatory: <1% (e.g., "it" referring to a taste)
The remaining 80-90% of pronouns are not directly related to senses, as they refer to abstract concepts, individuals, or entities without sensory connections.
In English, the parts of speech are:
1. Nouns (8-10% of total words)
2. Verbs (5-6% of total words)
3. Adjectives (4-5% of total words)
4. Adverbs (2-3% of total words)
5. Pronouns (3-4% of total words)
6. Prepositions (5-6% of total words)
7. Conjunctions (2-3% of total words)
8. Interjections (1-2% of total words)
these frequencies are approximate and can vary depending on the context, genre, and style of writing.
a rough breakdown of the relative frequency of each part of speech in English:
- Nouns: 1 in 10 words
- Verbs: 1 in 15 words
- Adjectives: 1 in 20 words
- Adverbs: 1 in 30 words
- Pronouns: 1 in 25 words
- Prepositions: 1 in 15 words
- Conjunctions: 1 in 30 words
- Interjections: 1 in 50 words
কোন শব্দ কোন কোন sense organ এর উপর নির্ভরশীল হয়ে তৈরি হয়েছে সেইটা বিচার করার প্রোগ্রাম এবং approach ও দিয়েছি নিচে
Here is a high-level outline of the C# code for the predicativity analysis process:
```
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Xml;
using System.Xml.Serialization;
// Define the Word_predicativity_class
public class Word_predicativity_class
{
public string currentWord { get; set; }
public List<string> recursivelyPopulatedWordLowLevelDependencyChainList { get; set; }
public int totalOtherWordsOnWhichCurrentWordDepends { get; set; }
}
// Define the class_of_senses data structure
public class class_of_senses
{
public string word { get; set; }
public List<sense> senses { get; set; }
public List<humanSense> humanSenses { get; set; }
}
public class sense
{
public string senseName { get; set; }
public List<word> words { get; set; }
}
public class humanSense
{
public string humanSenseName { get; set; }
public List<sense> senses { get; set; }
}
public class word
{
public string wordName { get; set; }
public List<sense> senses { get; set; }
}
// Load the WordNet dictionary
XmlSerializer serializer = new XmlSerializer(typeof(WordNet));
WordNet wordNet = serializer.Deserialize(new XmlTextReader("wordnet.xml"));
// Create a list to store the Word_predicativity_class objects
List<Word_predicativity_class> wordPredicativityList = new List<Word_predicativity_class>();
// Iterate through each word in the WordNet dictionary
foreach (WordNetWord word in wordNet.words)
{
// Create a new Word_predicativity_class object
Word_predicativity_class wordPredicativity = new Word_predicativity_class();
wordPredicativity.currentWord = word.word;
// Populate the recursivelyPopulatedWordLowLevelDependencyChainList
// ...
// Add the wordPredicativity object to the list
wordPredicativityList.Add(wordPredicativity);
}
// Create a list to store the class_of_senses objects
List<class_of_senses> classOfSensesList = new List<class_of_senses>();
// Iterate through each word in the WordNet dictionary
foreach (WordNetWord word in wordNet.words)
{
// Create a new class_of_senses object
class_of_senses classOfSenses = new class_of_senses();
classOfSenses.word = word.word;
// Populate the senses and humanSenses lists
// ...
// Add the classOfSenses object to the list
classOfSensesList.Add(classOfSenses);
}
// Perform predicativity analysis using the class_of_senses data structure
foreach (Word_predicativity_class wordPredicativity in wordPredicativityList)
{
// Calculate the predicativity score for each word
// ...
// Store the predicativity score in a database or file
// ...
}
```
Approach টা বলছি
Predicativity analysis করার জন্য wordnet এর dictionary download করে যেই ফাইল গুলো এলো সেগুলো notepad এ খুলে পড়তে পারি
https://wordnet.princeton.edu/download/current-version#win
তারপর প্রত্যেক টা word এর একটা class তৈরি করেছি যার নাম হচ্ছে
Word_predicativity_class
এই class এর structure হচ্ছে
Public Class Word_predicativity_class
{
string currentword="":
List<string> recursivelypopulatedwordlowleveldependencychainlist;
///new keyword হলেই constructor এর মধ্যে list টা create করে clean করে first entry হিসেবে
recursivelypopulatedwordlowleveldependencychainlist
.Add (currentword);
করে নেওয়া হবে
int total_other_words_on_which_current_word_depends=0;
}
প্রত্যেক টা word এর
meaning এ গিয়ে এবং sense এ গিয়ে
Preposition,intejection,conjunction গুলো delete করে দিলাম
তারপর টোকেন হিসেবে meaning এর word গুলো নিয়ে temp_list তৈরি করে for each entry
Rescan whole dictionary once
কোন কোন word related সেটা ও তুলে নিলাম তারপর recursively ওই লিস্ট populate করবো আবার list এর last item টা নিয়ে পুরো wordnet এ rescan করে nonduplicate word কে list এ add করতে থাকবো আর int value টা বাড়াতে থাকবো dependency predicativity counter এর ক্ষেত্রে
এইভাবে ততক্ষণ করবো যতক্ষণ পর্যন্ত পুরো database এর সমস্ত word এবং মিনিং গুলোর টোকেন স্ক্যান করে ও একটাও আর nonduplicate word add করা যাবে না current word এর list এ
এইটা অবশ্যই terminating প্রোগ্রাম কারণ word এর cyclic dependency হতেই দিচ্ছি না কারণ duplicate entry allowed নয় লিস্ট এ
আর total word fixed finite
এই process টা wordnet এর প্রত্যেক টা word এর জন্য চললে অবশ্যই প্রত্যেক টা word এর chained dependency list এবং dependency count ও পেয়ে যাবেন প্রত্যেক টা word_predicativity_class এর অবজেক্ট এর মধ্যে
প্রত্যেক টা word scan complete হয়ে গেলে দেখব
এই প্রত্যেক টা অবজেক্ট কে একটা বড়ো list<word_predicativity_class> wordpredicativitylist
এ populate করা হয় গেছে
তখন প্রত্যেক টা dictionary entry কে আর alphabetically sort না করে
list<word_predicativity_class> wordpredicativitylist
এই list টা কে
এই
total_other_words_on_which_current_word_depends
orderby করে sort করে নিলে একদম উপরে সেই basic word গুলো পাবো যাদের dependency (0 হবে না কারণ constructor এ আগেই
currentword টোকেন টা populate করা আছে
অথবা 1 অথবা 2
বাকি গুলোর ক্ষেত্রে word dependency chain এর
total_other_words_on_which_current_word_depends
Variable এর value বড়জোর maximum হবে (total words in dictionary -1)
এইবার এই list টা কে xml অথবা json অথবা csv তে store করে দিলেই আমাদের predicativity database তৈরি
তারপর
প্রত্যেক টা word এর dependency লিস্ট এর ভিতরে গিয়ে
লিস্ট এর মধ্যে প্রত্যেক টা word এর
Human Sense organ dependency database ও তৈরি করতে চাই
এই পদ্ধতি তে
সেই লজিক টা ও বলছি
আমি একটা বিশেষ ধরনের data structure as
class_of_senses
design করতে চাই যেটা অনেকটা data structure এর মতন
যেমন class class_of_senses
X i+Y j+Z k+R u+S v+T w
এবং দুটো public static list আছে
C n এখানে n এইটা ও list of objects of class_of_senses যেইটা একটা public static list<class_of_senses>()
এই লিস্ট টা সম্পূর্ন নিজের জীবনের অভিজ্ঞতার ভিত্তিতে তৈরি হওয়া একটা লিস্ট of class_of_senses
G h
এখানে h এইটা ও list of objects of class_of_senses যেইটা একটা
public static list<class_of_senses>() কিন্তু নিজের অর্জিত অভিজ্ঞতার ভিত্তিতে তৈরি নয় এই লিস্ট টা। এইটা হচ্ছে লোকের থেকে শুনে, বই পড়ে, ইতিহাস ঘেঁটে, খবর শুনে, ইন্টারনেট সার্চ করে অথবা বিভিন্ন কায়দায় 3000000 বছরের তথ্য থেকে বেছে সাজিয়ে রাখা একটা list of class_of_senses
এখানে X,Y,Z,R,S গুলো হচ্ছে নির্দিষ্ট text যেমন
i হচ্ছে ত্মক থেকে তথ্য প্রাপ্তির(touch sense input dependency)ইউনিট ভেক্টর
j হচ্ছে চোখ থেকে তথ্য প্রাপ্তির (visual sense input dependency)ইউনিট ভেক্টর
k হচ্ছে কান থেকে তথ্য প্রাপ্তির(auditory sense input dependency)ইউনিট ভেক্টর
u হচ্ছে জীব থেকে তথ্য প্রাপ্তির(taste of food or taste through tongue related sense input dependency)ইউনিট ভেক্টর
v
হচ্ছে থেকে নাক প্রাপ্তির(smell sense input dependency)ইউনিট ভেক্টর
w
হচ্ছে খিদে অথবা curiosity থেকে তথ্য প্রাপ্তির(hunger related or mind level or curiosity level of sense input dependency)ইউনিট ভেক্টর
n হচ্ছে গোটা এই structure টা কে hold করতে পারে এমন একটা linked list যেটা memory of all such structure objects stored in a sequence from the starting days of life . এই list টা randomly access করা হয় যেকোন vector এর থেকেই access করা যায় এই list টা কে। এই লিস্ট টা সম্পূর্ন নিজের অর্জিত অভিজ্ঞতার storage এর একটা linked list যার element গুলো
h ও বলা হয়েছে আগেই
আমরা এই ধরনের একটা গঠন কে mind এর perception এর গাণিতিক গঠন হিসেবে দেখছি আর মডেল করছি
তারপর ধরে নিচ্ছি যে একটা মানুষ সমস্ত dictionary তে যত শব্দ আছে তার প্রত্যেক টা শব্দের সমস্ত context এর অর্থ গুলো জানে এবং wordnet এর সমস্ত শব্দের সমস্ত word এর sense গুলো perfectly জানে
প্রত্যেক টা শব্দের সৃষ্টি হওয়ার সময় কোন না কোন ইন্দ্রিয়ের প্রভাব থেকে বস্তু সংযোগ হতে হতে তবেই ওই শব্দ টা কে sense and reference করে করে করে করে করে করে 60000 বছর এর প্র্যাকটিস থেকে শব্দ গুলো evolve করেছে
উপরের 6 টা ইউনিট ভেক্টর এবং দুটো লিস্ট এর উপর নির্ভর করেই (wordnet এর)প্রত্যেক টা শব্দের বিশ্লেষণ করে বোঝা সম্ভব যে কোন কোন শব্দ টা তৈরি হয়ে evolve হোয়ার সময় কোন কোন ইন্দ্রিয়ের প্রভাব কতোটা ছিল
এই গঠন এর ভিত্তিতে বলতে পারি
(X +Y +Z +R +S +T )+(C +G) =1
কিন্তু
0<(X +Y +Z +R +S +T)<1
দুটো ধরনের memory হচ্ছে ইন্দ্রিয় গুলোর পরিপূরক কারণ অনেক কিছুই আমরা সম্পূর্ন ইন্দ্রিয় নির্ভর হয়ে জানতে পারি না।
টোটাল টা 0 এবং 1 এর মধ্যে যদি C এবং G গুলো guarantee নেই যে প্রয়োজনে মনে পড়বে ফলে অনেক শব্দের ক্ষেত্রে sense এবং reference এর semantic গ্যাপ হয়
অর্থাৎ ওয়ার্ডনেট এর সমস্ত শব্দ evolve করতে করতে করতে এই গঠন এর সাহায্যেই প্রয়োগ এর পথ খুঁজে পেয়েছে আর প্রয়োগ ও হচ্ছে
তাহলে কিভাবে প্রেডিক্যাটিভিটি বিশ্লেষণ (predicativity analysis) করে বলতে পারবো যে কোন কোন শব্দ কতো শতাংশ কোন কোন factor এর উপর নির্ভরশীল?
ফ্যাক্টর গুলো উপরে বলেছি
Comments
Post a Comment