停止语不适用于关键字搜索


Stopwords are not working for keyword searching

我有一段PHP代码,用于从孟加拉语文本中搜索关键字。它提供输出,但我面临三个问题-

  1. 它并没有忽略我声明的stopwords数组。

  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>

示例文本:

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

preg_replace()在您使用的多字节字符串上无法正常工作。

相反,您需要使用此处记录的mb_ereg_replace()