শব্দ গাছ

ওভারভিউ

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

গুগল ওয়ার্ড ট্রি দ্রুত প্রচুর পরিমাণে পাঠ্য প্রক্রিয়া করতে সক্ষম। আধুনিক সিস্টেমগুলি উল্লেখযোগ্য বিলম্ব ছাড়াই উপন্যাসের আকারের পাঠ্য পরিচালনা করতে সক্ষম হওয়া উচিত।

দ্রষ্টব্য: ট্রি শব্দটি বিটাতে রয়েছে এবং ভবিষ্যতে Google চার্ট রিলিজে উল্লেখযোগ্য সংশোধন করা হতে পারে।

SVG ব্যবহার করে ব্রাউজারে ওয়ার্ড ট্রি রেন্ডার করা হয়, যার মানে এটি সমস্ত আধুনিক ব্রাউজারে কাজ করবে (যেমন, Chrome, Firefox, Opera, এবং Internet Explorer 9+)। সমস্ত Google চার্টের মত, ওয়ার্ড ট্রি টুলটিপ প্রদর্শন করে যখন ব্যবহারকারী ডেটার উপর ঘোরাফেরা করে।

একটি সহজ উদাহরণ

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

<script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {packages:['wordtree']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable( [ ['Phrases'], ['cats are better than dogs'], ['cats eat kibble'], ['cats are better than hamsters'], ['cats are awesome'], ['cats are people too'], ['cats eat mice'], ['cats meowing'], ['cats in the cradle'], ['cats eat mice'], ['cats in the cradle lyrics'], ['cats eat kibble'], ['cats for adoption'], ['cats are family'], ['cats eat mice'], ['cats are better than kittens'], ['cats are evil'], ['cats are weird'], ['cats eat mice'], ] ); var options = { wordtree: { format: 'implicit', word: 'cats' } }; var chart = new google.visualization.WordTree(document.getElementById('wordtree_basic')); chart.draw(data, options); } </script> </head> <body> <div id="wordtree_basic" style="width: 900px; height: 500px;"></div> </body> </html> google.charts.load('current', {packages:['wordtree']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable( [ ['Phrases'], ['cats are better than dogs'], ['cats eat kibble'], ['cats are better than hamsters'], ['cats are awesome'], ['cats are people too'], ['cats eat mice'], ['cats meowing'], ['cats in the cradle'], ['cats eat mice'], ['cats in the cradle lyrics'], ['cats eat kibble'], ['cats for adoption'], ['cats are family'], ['cats eat mice'], ['cats are better than kittens'], ['cats are evil'], ['cats are weird'], ['cats eat mice'], ] ); var options = { wordtree: { format: 'implicit', word: 'cats' } }; var chart = new google.visualization.WordTree(document.getElementById('wordtree_basic')); chart.draw(data, options); } <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <html> <head> <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script> <script type="text/javascript"> google.charts.load('current', {packages:['wordtree']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable( [ ['Phrases'], ['cats are better than dogs'], ['cats eat kibble'], ['cats are better than hamsters'], ['cats are awesome'], ['cats are people too'], ['cats eat mice'], ['cats meowing'], ['cats in the cradle'], ['cats eat mice'], ['cats in the cradle lyrics'], ['cats eat kibble'], ['cats for adoption'], ['cats are family'], ['cats eat mice'], ['cats are better than kittens'], ['cats are evil'], ['cats are weird'], ['cats eat mice'], ] ); var options = { wordtree: { format: 'implicit', word: 'cats' } }; var chart = new google.visualization.WordTree(document.getElementById('wordtree_basic')); chart.draw(data, options); } </script> </head> <body> <div id="wordtree_basic" style="width: 900px; height: 500px;"></div> </body> </html> google.charts.load('current', {packages:['wordtree']}); google.charts.setOnLoadCallback(drawChart); function drawChart() { var data = google.visualization.arrayToDataTable( [ ['Phrases'], ['cats are better than dogs'], ['cats eat kibble'], ['cats are better than hamsters'], ['cats are awesome'], ['cats are people too'], ['cats eat mice'], ['cats meowing'], ['cats in the cradle'], ['cats eat mice'], ['cats in the cradle lyrics'], ['cats eat kibble'], ['cats for adoption'], ['cats are family'], ['cats eat mice'], ['cats are better than kittens'], ['cats are evil'], ['cats are weird'], ['cats eat mice'], ] ); var options = { wordtree: { format: 'implicit', word: 'cats' } }; var chart = new google.visualization.WordTree(document.getElementById('wordtree_basic')); chart.draw(data, options); }

এই শব্দ গাছটি শব্দগুচ্ছের একটি গাছকে চিত্রিত করে, শব্দের আকার তাদের ব্যবহারের সমানুপাতিক। বাক্যাংশের এই সেটটিতে, "বিড়াল ইঁদুর খায়" চারবার ঘটে এবং "বিড়াল খায়" ছয়বার ঘটে (চার বার "ইঁদুর দিয়ে", এবং দুবার "কিবল" দিয়ে)।

ফ্রিকোয়েন্সি সম্পর্কে তথ্য দেখতে শব্দের উপর ঘোরাঘুরি করার চেষ্টা করুন।

এখানে একটি ওয়েব পৃষ্ঠা রয়েছে যা উপরের শব্দ গাছটি তৈরি করে:

<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {packages:['wordtree']});
      google.charts.setOnLoadCallback(drawChart);

      function drawChart() {
        var data = google.visualization.arrayToDataTable(
          [ ['Phrases'],
            ['cats are better than dogs'],
            ['cats eat kibble'],
            ['cats are better than hamsters'],
            ['cats are awesome'],
            ['cats are people too'],
            ['cats eat mice'],
            ['cats meowing'],
            ['cats in the cradle'],
            ['cats eat mice'],
            ['cats in the cradle lyrics'],
            ['cats eat kibble'],
            ['cats for adoption'],
            ['cats are family'],
            ['cats eat mice'],
            ['cats are better than kittens'],
            ['cats are evil'],
            ['cats are weird'],
            ['cats eat mice'],
          ]
        );

        var options = {
          wordtree: {
            format: 'implicit',
            word: 'cats'
          }
        };

        var chart = new google.visualization.WordTree(document.getElementById('wordtree_basic'));
        chart.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id="wordtree_basic" style="width: 900px; height: 500px;"></div>
  </body>
</html>

শব্দ গাছগুলি কেস-সংবেদনশীল । আপনি যদি চান যে "বিড়াল" এবং "বিড়াল" এর সাথে একই আচরণ করা হোক, তাহলে আপনার টেক্সটে জাভাস্ক্রিপ্টের toLowerCase() বা toUpperCase() পদ্ধতিগুলি ব্যবহার করুন ট্রি শব্দটি প্রদান করার আগে।

অন্তর্নিহিত এবং স্পষ্ট শব্দ গাছ

শব্দ গাছ তৈরি করার দুটি উপায় আছে: অন্তর্নিহিত এবং স্পষ্টভাবে । পছন্দ wordtree.format বিকল্পের সাথে নির্দিষ্ট করা হয়েছে।

format: 'implicit'
ট্রি শব্দটি যেকোন ক্রমে বাক্যাংশের একটি সেট গ্রহণ করবে এবং শব্দ এবং সাবফ্রেজের ফ্রিকোয়েন্সি অনুসারে গাছটি তৈরি করবে।
format: 'explicit'
আপনি ট্রি শব্দটিকে বলুন কি কিসের সাথে সংযোগ করে, প্রতিটি সাবফ্রেজ কত বড় করতে হবে এবং কোন রং ব্যবহার করতে হবে।

পূর্ববর্তী বিভাগে ট্রি শব্দটি একটি অন্তর্নিহিত শব্দ গাছ ছিল: আমরা শুধু শব্দগুচ্ছের একটি বিন্যাস নির্দিষ্ট করেছি, এবং ট্রি শব্দটি প্রতিটি শব্দকে কত বড় করতে হবে তা নির্ধারণ করেছি।

একটি স্পষ্ট শব্দ গাছে, চার্ট নির্মাতা সরাসরি তথ্য প্রদান করে যে কোন শব্দ কোনটির সাথে লিঙ্ক করে, তাদের রঙ এবং আকার।

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

এই শব্দ গাছটি এত প্রশস্ত যে এটি অনস্ক্রিনে মাপসই হওয়ার সম্ভাবনা কম। যখন এমন হয়, গাছ শব্দটি প্রান্তে বিবর্ণ হয়ে যায়। আপনি যে কোনও শব্দে ক্লিক করে গাছটি নেভিগেট করতে পারেন।

গুরুত্বপূর্ণ অংশ
      function drawSimpleNodeChart() {
        var nodeListData = new google.visualization.arrayToDataTable([
          ['id', 'childLabel', 'parent', 'size', { role: 'style' }],
          [0, 'Life', -1, 1, 'black'],
          [1, 'Archaea', 0, 1, 'black'],
          [2, 'Eukarya', 0, 5, 'black'],
          [3, 'Bacteria', 0, 1, 'black'],

          [4, 'Crenarchaeota', 1, 1, 'black'],
          [5, 'Euryarchaeota', 1, 1, 'black'],
          [6, 'Korarchaeota', 1, 1, 'black'],
          [7, 'Nanoarchaeota', 1, 1, 'black'],
          [8, 'Thaumarchaeota', 1, 1, 'black'],

          [9, 'Amoebae', 2, 1, 'black'],
          [10, 'Plants', 2, 1, 'black'],
          [11, 'Chromalveolata', 2, 1, 'black'],
          [12, 'Opisthokonta', 2, 5, 'black'],
          [13, 'Rhizaria', 2, 1, 'black'],
          [14, 'Excavata', 2, 1, 'black'],

          [15, 'Animalia', 12, 5, 'black'],
          [16, 'Fungi', 12, 2, 'black'],

          [17, 'Parazoa', 15, 2, 'black'],
          [18, 'Eumetazoa', 15, 5, 'black'],

          [19, 'Radiata', 18, 2, 'black'],
          [20, 'Bilateria', 18, 5, 'black'],

          [21, 'Orthonectida', 20, 2, 'black'],
          [22, 'Rhombozoa', 20, 2, 'black'],
          [23, 'Acoelomorpha', 20, 1, 'black'],
          [24, 'Deuterostomia', 20, 5, 'black'],
          [25, 'Chaetognatha', 20, 2, 'black'],
          [26, 'Protostomia', 20, 2, 'black'],

          [27, 'Chordata', 24, 5, 'black'],
          [28, 'Hemichordata', 24, 1, 'black'],
          [29, 'Echinodermata', 24, 1, 'black'],
          [30, 'Xenoturbellida', 24, 1, 'black'],
          [31, 'Vetulicolia', 24, 1, 'black']]);

        var options = {
          colors: ['black', 'black', 'black'],
          wordtree: {
            format: 'explicit',
            type: 'suffix'
          }
        };
সম্পূর্ণ ওয়েব পেজ
<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {packages:['wordtree']});
      google.charts.setOnLoadCallback(drawSimpleNodeChart);
      function drawSimpleNodeChart() {
        var nodeListData = new google.visualization.arrayToDataTable([
          ['id', 'childLabel', 'parent', 'size', { role: 'style' }],
          [0, 'Life', -1, 1, 'black'],
          [1, 'Archaea', 0, 1, 'black'],
          [2, 'Eukarya', 0, 5, 'black'],
          [3, 'Bacteria', 0, 1, 'black'],

          [4, 'Crenarchaeota', 1, 1, 'black'],
          [5, 'Euryarchaeota', 1, 1, 'black'],
          [6, 'Korarchaeota', 1, 1, 'black'],
          [7, 'Nanoarchaeota', 1, 1, 'black'],
          [8, 'Thaumarchaeota', 1, 1, 'black'],

          [9, 'Amoebae', 2, 1, 'black'],
          [10, 'Plants', 2, 1, 'black'],
          [11, 'Chromalveolata', 2, 1, 'black'],
          [12, 'Opisthokonta', 2, 5, 'black'],
          [13, 'Rhizaria', 2, 1, 'black'],
          [14, 'Excavata', 2, 1, 'black'],

          [15, 'Animalia', 12, 5, 'black'],
          [16, 'Fungi', 12, 2, 'black'],

          [17, 'Parazoa', 15, 2, 'black'],
          [18, 'Eumetazoa', 15, 5, 'black'],

          [19, 'Radiata', 18, 2, 'black'],
          [20, 'Bilateria', 18, 5, 'black'],

          [21, 'Orthonectida', 20, 2, 'black'],
          [22, 'Rhombozoa', 20, 2, 'black'],
          [23, 'Acoelomorpha', 20, 1, 'black'],
          [24, 'Deuterostomia', 20, 5, 'black'],
          [25, 'Chaetognatha', 20, 2, 'black'],
          [26, 'Protostomia', 20, 2, 'black'],

          [27, 'Chordata', 24, 5, 'black'],
          [28, 'Hemichordata', 24, 1, 'black'],
          [29, 'Echinodermata', 24, 1, 'black'],
          [30, 'Xenoturbellida', 24, 1, 'black'],
          [31, 'Vetulicolia', 24, 1, 'black']]);

        var options = {
          colors: ['black', 'black', 'black'],
          wordtree: {
            format: 'explicit',
            type: 'suffix'
          }
        };

        var wordtree = new google.visualization.WordTree(document.getElementById('wordtree_explicit'));
        wordtree.draw(nodeListData, options);
      }
    </script>
  </head>
  <body>
    <div id="wordtree_explicit" style="width: 900px; height: 500px;"></div>
  </body>
</html>

উপরের কোডে, আপনি দেখতে পাচ্ছেন যে আমরা ম্যানুয়ালি আমাদের ডেটা টেবিল তৈরি করি। আমরা প্রথমে আমাদের পাঁচটি কলাম ঘোষণা করি:

  1. সূচক নম্বর (একটি শব্দের জনক সনাক্ত করতে ব্যবহৃত)।
  2. টেক্সট গাছ প্রদর্শিত হবে. (এটি একটি শব্দ হতে হবে না।)
  3. শব্দের অভিভাবক, -1 এর অর্থ "পিতা নেই"।
  4. শব্দের আকার।
  5. শব্দের রঙ।

তারপরে আমরা প্রতিটি শব্দের জন্য একটি সারি যোগ করি। এখানে একটি উদাহরণ:

nodeListData.addRow([9, 'Amoebae', 2, 1, 'black']);

এটি হল সারি #9, গাছ শব্দের সাথে Amoebae শব্দটি যোগ করা। প্যারেন্ট হল সারি 2 ( Eukarya ), সাইজ হল 1 (কোনও নির্দিষ্ট এককে নয়), এবং রঙ হল 0। এই শব্দ গাছের সমস্ত রং কালো, কিন্তু মাপ ভিন্ন।

অক্ষরের আকার

অন্তর্নিহিত শব্দ গাছগুলিতে, প্রতিটি শব্দের প্রকৃত প্রদর্শনের আকার দুটি জিনিস দ্বারা প্রভাবিত হয়: শব্দের জন্য নির্দিষ্ট আকার এবং গাছের নীচের (অর্থাৎ ডানদিকে) সমস্ত শব্দের জন্য নির্দিষ্ট আকার। উপরের শব্দ গাছে, Life তিনটি সন্তান রয়েছে: Archaea (আকার 1), Eukarya (আকার 5), এবং Bacteria (আকার 1)। আর্কিয়া তার ভাইবোনদের চেয়ে বড় আকারে প্রদর্শিত হয় কারণ এর পাঁচটি সন্তান রয়েছে, যার আকার 1। যদি আমরা ব্যাকটেরিয়ার 21 টি ফাইলা যোগ করি, আপেক্ষিক আকার পরিবর্তন হবে:

যেহেতু আমরা এই শব্দ গাছের জন্য খুব বেশি উল্লম্ব স্থান প্রদান করিনি, ব্যাকটেরিয়া 21 টি ফাইলা উপলব্ধ স্থান উপচে পড়ার সম্ভাবনা রয়েছে। গাছ শব্দটি তাদের ভেঙে পড়ে, তাই আপনি "আরো 21" লেবেলযুক্ত একটি টেন্ড্রিল দেখতে পান। আপনি যদি Bacteria ক্লিক করেন, তাহলে ট্রি শব্দটি রিসেন্টার হবে এবং আপনি 21টি ফাইলা দেখতে সক্ষম হবেন। Bacteria আবার ক্লিক করলে গাছটি "উপরে" আসবে।

যদি পাঠ্য আকারের এই স্বয়ংক্রিয় গণনা কিছু শব্দকে খুব বড় করে তোলে, আপনি maxFontSize বিকল্পের সাথে একটি উপরের সীমানা সেট করতে পারেন:

গুরুত্বপূর্ণ অংশ
        var options = {
          maxFontSize: 14,
          wordtree: {
            format: 'explicit',
            type: 'suffix'
          }
        };
সম্পূর্ণ ওয়েব পেজ
<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {packages:['wordtree']});
      google.charts.setOnLoadCallback(drawSimpleNodeChart);
      function drawSimpleNodeChart() {
        var nodeListData = new google.visualization.arrayToDataTable([
          ['id', 'childLabel', 'parent', 'size', 'weight'],
          [0, 'Life', -1, 1, 0],
          [1, 'Archaea', 0, 1, 0],
          [2, 'Eukarya', 0, 5, 0],
          [3, 'Bacteria', 0, 1, 0],

          [4, 'Crenarchaeota', 1, 1, 0],
          [5, 'Euryarchaeota', 1, 1, 0],
          [6, 'Korarchaeota', 1, 1, 0],
          [7, 'Nanoarchaeota', 1, 1, 0],
          [8, 'Thaumarchaeota', 1, 1, 0],

          [9, 'Amoebae', 2, 1, 0],
          [10, 'Plants', 2, 1, 0],
          [11, 'Chromalveolata', 2, 1, 0],
          [12, 'Opisthokonta', 2, 5, 0],
          [13, 'Rhizaria', 2, 1, 0],
          [14, 'Excavata', 2, 1, 0],

          [15, 'Animalia', 12, 5, 0],
          [16, 'Fungi', 12, 2, 0],

          [17, 'Parazoa', 15, 2, 0],
          [18, 'Eumetazoa', 15, 5, 0],

          [19, 'Radiata', 18, 2, 0],
          [20, 'Bilateria', 18, 5, 0],

          [21, 'Orthonectida', 20, 2, 0],
          [22, 'Rhombozoa', 20, 2, 0],
          [23, 'Acoelomorpha', 20, 1, 0],
          [24, 'Deuterostomia', 20, 5, 0],
          [25, 'Chaetognatha', 20, 2, 0],
          [26, 'Protostomia', 20, 2, 0],

          [27, 'Chordata', 24, 5, 0],
          [28, 'Hemichordata', 24, 1, 0],
          [29, 'Echinodermata', 24, 1, 0],
          [30, 'Xenoturbellida', 24, 1, 0],
          [31, 'Vetulicolia', 24, 1, 0],

          [32, 'Actinobacteria', 3, 1, 0],
          [33, 'Firmicutes', 3, 1, 0],
          [34, 'Tenericutes', 3, 1, 0],
          [35, 'Aquificae', 3, 1, 0],
          [36, 'Deinococcus-Thermus', 3, 1, 0],
          [37, 'Fibrobacteres-Chlorobi/Bacteroidetes', 3, 1, 0],
          [38, 'Fusobacteria', 3, 1, 0],
          [39, 'Gemmatimonadetes', 3, 1, 0],
          [40, 'Nitrospirae', 3, 1, 0],
          [41, 'Planctomycetes-Verrucomicrobia/Chlamydiae', 3, 1, 0],
          [42, 'Proteobacteria', 3, 1, 0],
          [43, 'Spirochaetes', 3, 1, 0],
          [44, 'Synergistetes', 3, 1, 0],
          [45, 'Acidobacteria', 3, 1, 0],
          [46, 'Chloroflexi', 3, 1, 0],
          [47, 'Chrysiogenetes', 3, 1, 0],
          [48, 'Cyanobacteria', 3, 1, 0],
          [49, 'Deferribacteres', 3, 1, 0],
          [50, 'Dictyoglomi', 3, 1, 0],
          [51, 'Thermodesulfobacteria', 3, 1, 0],
          [52, 'Thermotogae', 3, 1, 0]]);

        var options = {
          maxFontSize: 14,
          wordtree: {
            format: 'explicit',
            type: 'suffix'
          }
        };

        var wordtree = new google.visualization.WordTree(
          document.getElementById('wordtree_explicit_maxfontsize'));
        wordtree.draw(nodeListData, options);
      }
    </script>
  </head>
  <body>
    <div id="wordtree_explicit_maxfontsize" style="width: 900px; height: 500px;"></div>
  </body>
</html>

উপসর্গ, প্রত্যয়, এবং দ্বিগুণ শব্দ গাছ

গাছ শব্দটি আমরা এখন পর্যন্ত দেখেছি সবগুলি প্রত্যয় শব্দ গাছ: মূল শব্দটি বাম দিকে, এবং মূল শব্দটি অবিলম্বে ডানদিকে রয়েছে। একটি উপসর্গ শব্দ গাছে, মূলটি ডানদিকে থাকে এবং একটি দ্বিগুণ শব্দের গাছে এটি কেন্দ্রে থাকে। এখানে লিঙ্কনের গেটিসবার্গ ঠিকানাটি একটি উপসর্গ শব্দ ট্রি হিসাবে 'জাতি' শব্দে পরিণত হয়েছে:

এখানে একটি প্রত্যয় শব্দ গাছের মতো একই বক্তৃতা রয়েছে, যা 'জাতি'-তেও রয়েছে:

আপনি চার্ট বিকল্পগুলিতে type: 'suffix' প্রদান করে একটি প্রত্যয় গাছ নির্দিষ্ট করুন:

        var options = {
          wordtree: {
            format: 'implicit',
            type: 'suffix',
            word: 'nation'
          }
        };

একটি দ্বিগুণ শব্দ গাছ উপসর্গ এবং প্রত্যয় শব্দ গাছকে বিয়ে করে:

আপনি চার্ট বিকল্পে type: 'double' প্রদান করে একটি ডবল ওয়ার্ড ট্রি নির্দিষ্ট করুন। মনে রাখবেন যে ডবল ওয়ার্ড ট্রি সবসময় একটি মূল শব্দ নির্দিষ্ট করতে হবে, এবং সর্বদা format: 'implicit'

        var options = {
          wordtree: {
            format: 'implicit',
            type: 'double',
            word: 'nation'
          }
        };

গাছের মূল word বিকল্পে নির্দিষ্ট করা আছে, তাই একটু HTML দিয়ে আমরা ব্যবহারকারীদের তাদের ওয়েব পৃষ্ঠা থেকে রুট নির্বাচন করার ক্ষমতা দিতে পারি:

এই শব্দ গাছের জন্য সম্পূর্ণ ওয়েব পৃষ্ঠা:

<html>
  <head>
    <script type="text/javascript" src="https://www.gstatic.com/charts/loader.js"></script>
    <script type="text/javascript">
      google.charts.load('current', {packages:['wordtree']});
      google.charts.setOnLoadCallback(drawSimpleNodeChart);
      function drawSimpleNodeChart() {
        var data = google.visualization.arrayToDataTable(
          [ ['Phrases'],
['Four score and seven years ago our fathers brought forth on this continent, a new nation, conceived in Liberty, and dedicated to the proposition that all men are created equal. Now we are engaged in a great civil war, testing whether that nation, or any nation so conceived and so dedicated, can long endure. We are met on a great battle-field of that war. We have come to dedicate a portion of that field, as a final resting place for those who here gave their lives that that nation might live. It is altogether fitting and proper that we should do this. But, in a larger sense, we can not dedicate -- we can not consecrate -- we can not hallow -- this ground. The brave men, living and dead, who struggled here, have consecrated it, far above our poor power to add or detract. The world will little note, nor long remember what we say here, but it can never forget what they did here. It is for us the living, rather, to be dedicated here to the unfinished work which they who fought here have thus far so nobly advanced. It is rather for us to be here dedicated to the great task remaining before us -- that from these honored dead we take increased devotion to that cause for which they gave the last full measure of devotion -- that we here highly resolve that these dead shall not have died in vain -- that this nation, under God, shall have a new birth of freedom -- and that government of the people, by the people, for the people, shall not perish from the earth.']
          ]
        );

        var options = {
          wordtree: {
            format: 'implicit',
            type: 'double',
            word: 'nation'
          }
        };

        var wordtree = new google.visualization.WordTree(document.getElementById('wordtree_double'));
        wordtree.draw(data, options);
      }
    </script>
  </head>
  <body>
    <div id="wordtree_double" style="width: 900px; height: 500px;"></div>
  </body>
</html>

স্টাইলিং শব্দ গাছ

আপনি আপনার শব্দ গাছের টাইপফেস এবং রং নিয়ন্ত্রণ করতে পারেন। fontName বিকল্পের সাথে টাইপফেস সেট করা হয়েছে:

উপরের চার্টের জন্য এখানে বিকল্প স্তবক রয়েছে:

var options = {
  format: 'implicit',
  word: 'cats',
  fontName: 'Times-Roman'
}

রঙ আরও সূক্ষ্ম। আকারের মতো, এটি ঐচ্ছিকভাবে গাছের শব্দের কিছু বৈশিষ্ট্য নির্দেশ করতে ব্যবহার করা যেতে পারে। আমরা যদি আমাদের "বিড়াল" শব্দের গাছের শব্দগুলিকে অনুভূতি নির্দেশ করতে চাই, তবে আমরা আমাদের ডেটা টেবিলে তা সরবরাহ করতে পারি।

উপরের শব্দ ট্রিতে, আমরা আমাদের ডেটা টেবিলটি নিম্নরূপ তৈরি করি:

var data = new google.visualization.arrayToDataTable([
  ['phrase', 'size', 'value'],
  ['cats are better than dogs', 1, 8],
  ['cats eat kibble', 1, 5],
  ...

আমরা আমাদের সমস্ত শব্দের মাপ 1 এ সেট করি, কিন্তু অনুভূতি নির্দেশ করার জন্য রঙ (উপরের স্নিপেটে নির্বিচারে 'value' হিসাবে লেবেল করা) 0 ("বিড়াল খারাপ") থেকে 10 ("বিড়ালগুলি দুর্দান্ত") রেঞ্জ করতে দিন। তারপরে আমাদের বিকল্পগুলিতে, আমরা তিনটি রঙ নির্দিষ্ট করি: সর্বনিম্ন, নিরপেক্ষ এবং সর্বোচ্চ:

var options = {
  format: 'implicit',
  word: 'cats',
  colors: ['red', 'black', 'green']
};

রঙগুলিও স্পষ্টভাবে নির্দিষ্ট করা যেতে পারে। এখানে একটি শব্দ গাছ যা দাবা খেলার সম্ভাব্য চাল দেখায়। শব্দের রং 'white' এবং 'black' কালো'-তে সেট করার পাশাপাশি, ব্যাকগ্রাউন্ড কালার হেক্স মান '#cba' তে সেট করা হয়েছে backgroundColor বিকল্পের সাথে:

এই শব্দ গাছের জন্য ডেটা টেবিল নিম্নরূপ ঘোষণা করা হয়েছে:

function drawChart() {
  var data = new google.visualization.arrayToDataTable([
    ['id', 'childLabel', 'parent', 'weight', { role: 'style' }],
    [0, 'PK4', -1, 1, 'white'],
    [1, 'PK4', 0, 1, 'black'],
    ...

মনে রাখবেন যে রঙ ধারণকারী কলামটি 'parent' বা 'weight' মতো টেক্সট লেবেল দ্বারা নয়, বরং শৈলী ভূমিকা: { role: 'style' } দ্বারা চিহ্নিত করা হয়।

আমরা বিকল্পগুলিতে পটভূমির রঙ সেট করি:

var options = {
  format: 'explicit',
  backgroundColor: '#cba'
};

টোকেনাইজিং বাক্য

অন্তর্নিহিত শব্দ গাছগুলিকে সাধারণ নিয়ম অনুসারে বাক্য এবং শব্দগুলিতে বিভক্ত করা হয়, যা নিয়মিত অভিব্যক্তি হিসাবে প্রকাশ করা হয়। বিরল ক্ষেত্রে আপনি ডিফল্ট আচরণ ওভাররাইড করতে চাইতে পারেন, এবং সেই ক্ষেত্রে আপনি শব্দ sentenceSeparator এবং wordSeparator বিকল্পগুলি ব্যবহার করতে পারেন।

আপনি যদি রেগুলার এক্সপ্রেশনে সাবলীল হন, তাহলে ডিফল্টগুলি আপনার কাছে বোধগম্য হতে পারে:

বাক্য বিভাজক: \s*(.+?(?:[?!]+|$|\.(?=\s+[AZ]|$)))\s*
শব্দ বিভাজক: ([!?,;:.&"-]+|\S*[AZ]\.|\S*(?:[^!?,;:.\s&-]))

দ্রষ্টব্য: ইন্টারনেট এক্সপ্লোরার 8-এ Regex বিভাজন অ-মানক এবং এটি অপ্রত্যাশিত ফলাফলের দিকে নিয়ে যেতে পারে।

লোড হচ্ছে

google.charts.load প্যাকেজের নাম হল "wordtree" :

  google.charts.load("current", {packages: ["wordtree"]});

ভিজ্যুয়ালাইজেশনের ক্লাসের নাম হল google.visualization.WordTree :

  var visualization = new google.visualization.WordTree(container);

উপাত্ত বিন্যাস

সারি: ডেটা টেবিলের প্রতিটি সারি প্রদর্শিত পাঠ্যকে উপস্থাপন করে। অন্তর্নিহিত শব্দ গাছের জন্য, প্রদর্শিত হওয়ার আগে সমস্ত সারির পাঠ্য একত্রিত এবং টোকেনাইজ করা হয়।

অন্তর্নিহিত শব্দ গাছের জন্য কলাম:

কলাম 0 কলাম 1 কলাম 2
উদ্দেশ্য: পাঠ্য আকার (ঐচ্ছিক) শৈলী (ঐচ্ছিক)
ডেটা টাইপ: স্ট্রিং সংখ্যা স্ট্রিং
ভূমিকা: ডোমেইন তথ্য তথ্য

স্পষ্ট শব্দ গাছের জন্য কলাম:

কলাম 0 কলাম 1 কলাম 2 কলাম 3 কলাম 4
উদ্দেশ্য: আইডি পাঠ্য অভিভাবক আকার শৈলী
ডেটা টাইপ: সংখ্যা স্ট্রিং সংখ্যা সংখ্যা স্ট্রিং
ভূমিকা: ডোমেইন তথ্য তথ্য তথ্য তথ্য

কনফিগারেশন অপশন

নাম
রং

তিনটি রঙের একটি তালিকা, ইংরেজি নাম বা হেক্স মান দ্বারা নির্দিষ্ট করা হয়। শব্দের রঙগুলি একটি বর্ণালী থেকে নেওয়া হবে যা প্রথম রঙ (নিম্ন মান) থেকে শুরু হয়, মধ্যম রঙ (নিরপেক্ষ) দিয়ে চলে এবং শেষ রঙে (উচ্চ) শেষ হয়।

প্রকার: স্ট্রিং এর অ্যারে
ডিফল্ট: ডিফল্ট রং
forceIFrame

একটি ইনলাইন ফ্রেমের ভিতরে চার্ট আঁকে। (উল্লেখ্য যে IE8 এ, এই বিকল্পটি উপেক্ষা করা হয়েছে; সমস্ত IE8 চার্ট আই-ফ্রেমে আঁকা হয়েছে।)

প্রকার: বুলিয়ান
ডিফল্ট: মিথ্যা
ফন্টের নাম

গাছের টাইপফেস শব্দটি।

প্রকার: স্ট্রিং
ডিফল্ট: ডিফল্ট
উচ্চতা

চার্টের উচ্চতা, পিক্সেলে।

প্রকার: সংখ্যা
ডিফল্ট: ধারণকারী উপাদানের উচ্চতা
maxFontSize

প্রদর্শিত শব্দের হরফের আকারের উপরের সীমা।

প্রকার: সংখ্যা
ডিফল্ট: নাল
প্রস্থ

চার্টের প্রস্থ, পিক্সেলে।

প্রকার: সংখ্যা
ডিফল্ট: ধারণকারী উপাদানের প্রস্থ
wordtree.format

implicit হলে, ইনপুট পাঠ্য বাক্য এবং শব্দে বিভক্ত হবে এবং ফ্রিকোয়েন্সি অনুযায়ী প্রদর্শিত হবে। explicit হলে, শব্দ এবং তাদের সংযোগ সরাসরি নির্দিষ্ট করা হয়।

প্রকার: স্ট্রিং
ডিফল্ট: 'implicit'
wordtree.sentenceSeparator

অন্তর্নিহিত শব্দ গাছের জন্য, পাঠ্যকে বাক্যে ভাঙতে ব্যবহার করা নিয়মিত অভিব্যক্তি। তারপর শব্দ wordSeparator বিকল্প ব্যবহার করে বাক্যগুলিকে শব্দে বিভক্ত করা হয়।

প্রকার: regex
ডিফল্ট: \s*(.+?(?:[?!]+|$|\.(?=\s+[AZ]|$)))\s*
wordtree.type

গাছ শব্দটি একটি উপসর্গ গাছ (ডানদিকে মূল শব্দ), একটি প্রত্যয় গাছ (বামে), বা দ্বিগুণ গাছ (মাঝখানে) হোক না কেন।

প্রকার: স্ট্রিং
ডিফল্ট: 'প্রত্যয়'
wordtree.word

অন্তর্নিহিত শব্দ গাছের জন্য, গাছের মূল হিসাবে কোন শব্দটি ব্যবহার করতে হবে। (মনে রাখবেন যে শব্দ গাছগুলি কেস সংবেদনশীল৷) এই বিকল্পটি অবশ্যই দ্বিগুণ শব্দ গাছের জন্য নির্দিষ্ট করা উচিত৷

প্রকার: স্ট্রিং
ডিফল্ট: নাল
wordtree.wordSeparator

অন্তর্নিহিত শব্দ গাছের জন্য, প্রদর্শিত হওয়ার জন্য পৃথক শব্দে বাক্য ভাঙ্গার জন্য ব্যবহার করা নিয়মিত অভিব্যক্তি।

প্রকার: regex
ডিফল্ট: /([!?,;:.&"-]+|\S*[AZ]\.|\S*(?:[^!?,;:.\s&-]))

পদ্ধতি

পদ্ধতি
draw(data, options)

চার্ট আঁকে। ready ইভেন্ট ফায়ার হওয়ার পরেই চার্টটি আরও মেথড কল গ্রহণ করে। Extended description .

রিটার্ন টাইপ: কোনোটিই নয়
clearChart()

চার্টটি সাফ করে এবং এর সমস্ত বরাদ্দকৃত সংস্থান প্রকাশ করে।

রিটার্ন টাইপ: কোনোটিই নয়

ঘটনা

নাম
ready

চার্টটি বাহ্যিক পদ্ধতি কলের জন্য প্রস্তুত। আপনি যদি চার্টের সাথে ইন্টারঅ্যাক্ট করতে চান, এবং আপনি এটি আঁকার পরে কল করার পদ্ধতিগুলি চান, তাহলে draw পদ্ধতিতে কল করার আগে আপনাকে এই ইভেন্টের জন্য একজন শ্রোতা সেট আপ করতে হবে এবং ইভেন্টটি বরখাস্ত হওয়ার পরেই তাদের কল করতে হবে।

বৈশিষ্ট্য: কোনোটিই নয়
select

যখন ব্যবহারকারী একটি শব্দ নির্বাচন করে, হয় গাছটিকে "জুম" করতে বা আউট করতে।

বৈশিষ্ট্য: শব্দ, রঙ, ওজন

ডেটা নীতি

সমস্ত কোড এবং ডেটা ব্রাউজারে প্রসেস এবং রেন্ডার করা হয়। কোনো সার্ভারে কোনো ডেটা পাঠানো হয় না।