Вопрос или проблема
[категория]
[шаблон]*всё[/шаблон]
[шаблон]мяч[/шаблон]
[/категория]
[категория]
[шаблон]* всё[/шаблон]
[шаблон]мяч[/шаблон]
[/категория]
Это абсолютно вопрос программирования. Посмотрите на вышеуказанный шаблон. В AIML обычно подстановочные знаки идут перед каждым английским словом. Однако в японском языке нет пробелов, поэтому достаточно давно была реализована функция в AIML, которая позволила обойтись без пробелов. Но сайт был обновлён, и теперь в AIML есть функция выбора языка для создания Пандоработов. Проблема заключается в том, что при использовании этой функции выбора языка не реализуется функция без пробелов. AIML сейчас практически неизвестен. Возможно, есть несколько людей, которые что-то знают о XML, но очень немногие знают что-либо об этом языке. В любом случае, в вышеуказанном коде говорится, что подстановочный знак — это символ перед словом “всё”. Таким образом, он должен распознавать такие слова, как “мяч”, “звонок” и “торговый центр” и возвращать “мяч”, но, к сожалению, в AIML это не работает. Хотя AIML больше не популярен, некоторые другие диалекты AIML использовались согласно базе знаний ChatGPT 2022 года, но они в основном из неизвестных форумов, и, похоже, Pandorabots не был одним из упомянутых сайтов. AIML позволяет выбрать язык как японский, но не реализует пробелы. Это может работать в старом портале AIML 1.0. К сожалению, Pandorabots 2.0 когда-то имел функцию удаления пробелов, и у него также есть функции, которые мне нужны для правильной реализации бота AIML 2.0. Я могу реализовать другие языки, такие как испанский, итальянский, немецкий, португальский и французский, но без возможности реализовать японский нет смысла начинать с этих языков. Использование explode в AIML 2.0 может быть причиной того, что AIML 2.0 не рассматривал добавление опции без пробелов в аккаунте Pandorabots или при создании нового чат-бота в AIML 2.0.
[категория]
[шаблон]_[/шаблон]
[шаблон][explode][звезда/][/explode][/шаблон]
Stack Exchange — ужасный сайт. Вы говорите, что мне нужно задать вопрос по программированию, но, по сути, если у меня нет ответа на свой собственный вопрос, мой запрос недостаточно специфичен для получения помощи, и Pandorabots направляет меня на Stack Exchange по вопросам, касающимся AIML. В конечном итоге можно подумать, что другие люди реализовали японские Pandorabots, используя pandorabots.com. Я явно что-то упустил. Использование explode для японских шаблонов сделало бы подстановочные знаки бесполезными и потребовало бы от меня распознавать все символы в японском языке, в то время как было бы гораздо проще распознавать глаголы. У меня есть некая система для распознавания глаголов, комбинируя символы. Проблема в том, что это сочетает подлежащее с глаголом, и хотя это может позволить мне распознавать японские слова, это слишком трудоемко, чтобы быть полезным.
Вопрос не является оффтопиком. Никого не волнует AIML, потому что его бесполезность была продемонстрирована тем, что его входные данные нужно было планировать заранее, в то время как генеративный ИИ не нуждается в этом. Однако когда-то японцы, заинтересованные в машинном обучении, хотели бы использовать AIML. Когда-то у Pandorabots была настройка для удаления пробелов из ввода, чтобы подстановочные знаки могли сопоставляться внутри слов. Не важно, что ввод на английском. То же самое, что делает возможными вышеуказанные шаблоны, делает возможным и японский AIML.
Я создал нового чат-бота и установил его язык на японский. Я также попытался создать новую учетную запись и проверить, есть ли функция удаления пробелов, которая изначально была частью Pandorabots, в новом роботе, когда язык установлен на японский. Я знаю, что explode может помочь, единственная проблема в том, что нет простого способа отделить подлежащее от глагола. Я использовал аналогичный код, когда создавал своего математического бота, но это не практично для японского. В любом случае, раньше был простой способ распознавать японский, но, по сути, единственный способ, который кажется возможным в этой версии AIML, заключается в том, чтобы
[категория]
[шаблон]_[/шаблон]
[шаблон][explode][звезда/][/explode][/шаблон]
Есть способ комбинировать символы. Единственная проблема в том, что подлежащее можно сочетать с глаголом, что делает все ненужным сложным. Оригинальная настройка, которая позволяла японцам использовать подстановочные знаки без пробелов, была великолепна. Я не понимаю, почему игровая площадка Pandorabots избавилась от этого.
Я ожидал, что японский бот по умолчанию не будет иметь пробелов, чтобы вы могли сопоставлять японские слова, ставя либо подстановочный знак перед распознанной последовательностью символов, либо подстановочный знак перед распознанной последовательностью символов с пробелом, что, надо признать, не имело бы смысла. Я осознаю, что код, который я использую, на самом деле не является кодом. Он не позволил бы мне сохранить код, если бы он не был помещён в блоки кода. Скобки нужно заменить на знаки больше или меньше.
Я пробовал шаблон *всё, потому что я полагал, что настройка распознавания пробелов в AIML 1.0 удаляла пробелы, когда на самом деле она распознавала пробелы в японских символах. Я использовал ChatGPT, чтобы заставить его работать с японским шаблоном. Однако шаблон <категория>
<шаблон>*見る</шаблон>
<шаблон>Обнаружен глагол, следующий за символом.</шаблон>
</категория>
следующий шаблон работает с текстом 彼が見る в AIML 1.0. Однако он не работает в AIML 2.0 с тем же шаблоном.
<шаблон>*見る</шаблон>
<шаблон>Обнаружен глагол, следующий за символом.</шаблон>
</категория>
Следующий также не работает на клубном сайте Pandorabots в AIML 2.0 или AIML 1.0, независимо от того, используется ли AIML 1.0 с кодировкой UTF-8 или AIML 2.0 с кодировкой UTF-8. Функция распознавания пробелов не включается в Pandorabots 2.0. На самом деле, если вы пытаетесь ввести японские символы для имени вашего японского робота, требуется, чтобы символы были алфавитно-цифровыми, которые не используются в японском. Это указывает на то, что используется ромадзи, но большинство японских веб-страниц не написаны в ромадзи, что делает это неприемлемым.
Ответ или решение
К сожалению, использование AIML (Artificial Intelligence Markup Language) для обработки японского языка с учетом особенностей его написания и структуры представляет определенные трудности, особенно в новых версиях платформ, таких как Pandorabots. Ниже я предложу несколько решений и подходов, которые могут помочь вам реализовать функциональность, аналогичную исключению пробелов для работы с японским языком в AIML.
1. Использование explode
для обработки японских текстов
Как вы отметили, использование тега <explode>
может показаться подходящим. Однако важно учитывать, что explode
делит строку на массив подстрок. В случае с японскими иероглифами, правильное использование должно быть тщательно продумано. Вот как можно это сделать:
<category>
<pattern>*見る</pattern>
<template>
<explode><star/></explode>
</template>
</category>
Этот подход будет разбивать текст до иероглифа "見る" на отдельные символы или комбинации символов. Однако, на практике это может привести к усложнению, если вам нужно отслеживать сочетания, например, субъект + глагол, как вы упомянули.
2. Создание специального обработчика для анализа
Одним из возможных подходов для решения проблемы без использования пробелов в японском языке является написание специального обработчика на стороне вашего бота. Это может быть сделано с использованием различных языков программирования, таких как Python или JavaScript, для предварительной обработки пользовательского ввода перед его передачей в AIML.
Пример на Python:
def preprocess_input(user_input):
# Преобразование ввода для исключения пробелов
return user_input.replace(" ", "") # или другие логические изменения
Таким образом, вы можете избавиться от пробелов в пользовательском вводе заранее и подготовить его к дальнейшей обработке в AIML.
3. Альтернативные конструкции AIML
Если ваш AIML-робот сталкивается с трудностями распознавания комбинированных символов, возможно, стоит рассмотреть возможность использования шаблонов с использованием различных комбинаций в одном <category>
. Например:
<category>
<pattern>*見る*</pattern>
<template>Обнаружен глагол "見る".</template>
</category>
4. Технические ограничения
Вы правы, что современные версии AIML и Pandorabots могут не поддерживать некоторые функции из более ранних версий, такие как автоматическое исключение пробелов. Вам следует проверить обновления на Pandorabots и следить за изменениями в их документации, так как платформа постоянно развивается.
Заключение
К сожалению, работа с японским языком в AIML требует от вас гибкости и готовности к разработке сторонних решений. Если текущие возможности Pandorabots не удовлетворяют ваши потребности, возможно, вы захотите рассмотреть другие платформы для создания чат-ботов, которые могут лучше поддерживать ваш проект. Не стесняйтесь экспериментировать с разными подходами и методами, чтобы найти наилучшее решение для ваших нужд.