2016-04-30 14 views
0

ベンガル語のテキストを検索するキーワードとしてPHPにコードがあります。それは出力を与えるが、私は3つの問題に直面している -キーワード検索でストップワードが機能しない

  1. 私が宣言したストップワードの配列を無視していない。

  2. 10個のキーワードを与えると仮定しますが、11/12/13個のキーワードを与えることもあります。

  3. 出力と同じ単語が時々出力されます。

これは私のコードです:

<form enctype="multipart/form-data" action="?action=extractKeyWords" method="POST"> 
     <div class="heading1">গীতিকার অনুসন্ধান</div> 
     <div class="heading2">Find Out Lyricist</div> 
     <label>Insert a text file of Bengali song lyrics</label> 
     <input type="file" name="uploadedfile" class="upload"> 
     <input type="submit" value="GO!" name="btn" class="button"> 


     <?php 
     if (isset($_GET['action']) == 'extractKeyWords') { 
      $target_path = $_FILES['uploadedfile']['name']; 

      function extractKeyWords($string) { 
       mb_internal_encoding('UTF-8'); 
       $stopwords = array('যায়','এরপর', 'আমি', 'একটি', 'এবং', 'আর', 'অথবা', 'তুমি', 'সে', 'ওরা', 'এ', 'ঐ', 'ও', 'কিভাবে', 'মধ্যে', 'থেকে', 'যেভাবে', 'হয়', 'বা', 'এর', 'এক', 'তার', 'উপর', 'ওখানে', 'সেখানে', 'তা', 'সেথা', 'ছিল', 'হবে', 'কি', 'কখন', 'কোথায়', 'কে', 'সাথে'); 
       //$string = preg_replace('/[\pP]/u', '', trim(preg_replace('/\s\s+/iu', '', mb_strtolower($string)))); 
       $string = preg_replace('/\s\s+/i', '', $string); 
       $matchWords = array_filter(explode(' ', $string), function ($item) use ($stopwords) { 
        return !($item == '' || in_array($item, $stopwords) || mb_strlen($item) <= 2 || is_numeric($item)); 
       }); 
       $wordCountArr = array_count_values($matchWords); 
       arsort($wordCountArr); 
       $wordCountArr = array_slice($wordCountArr, 0, 10); 
       return $wordCountArr; 
      } 

      $file = file_get_contents($target_path, true); 
      $words = extractKeyWords($file); 

      Print "<div class='output'>Keywords: " . implode(',', array_keys($words)) . "<div>"; 
     } 
     ?> 
    </form> 

サンプルテキスト:

ধিতাং ধিতাং বোলে এ মাদলে তান তোলে, 
তার আনন্দ উচ্ছলে আকাশ ভোরে জোছনায়, 
আই ছুটে সকলে এই মাটির ধরা তলে, 
আজ হাসির কলরোলে নতুন জীবন গড়ি আই, 
আয় রে আয় লগন বয়ে যায়, 
মেঘ গুর গুর করে চাদের সীমানায়, 
পারুল বোন ডাকে চম্পা ছুটে আয়, 
বর্গিরা সব হাঁকে কোমর বেধে আয়, 
আয় রে আয় আয় রে আয়, 
আয় রে আয় আয় রে আয় 

答えて

0

preg_replace()あなたが使用しているマルチバイト文字列、上で正しく動作しません。

mb_ereg_replace()と書かれているhereを使用する必要があります。

関連する問題