Weka
weka0.zip - архивированная директория
Ссылку на расположение в интернете не нашел (Андрей переписывал со своей машины на мою машину у себя дома).
Лицензия: You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Поэтому размещаю этот материал как рабочий без ссылки из index.htm.
Распаковал weka-src.zip объемом 943 729 б созданный 08/05/2000 12.42
Раньше нам приходилось делать в исходных текстах различные изменения. Теперь примеры суперкомпилировались и исполнялись без изменения исходных текстов (кроме одного в примере IB1).
Описание того, что делает пример, реализованный через библиотеку методов machine learning WEKA:
Ожидаемая программа:
if (mmmmm=="a" || mmmmm=="b") return "hit";
else return "miss";
Описание примеров. Каждому примеру соответствует поддиректория в архивированном приложении.
Пример 1. Мой собственный классификатор IBKorl. Остаточная программа
//-------------------------------------- 0 sec - method MessageClassifier.main(java.lang.String[]) //-------------------------------------- 11 sec - postprocessing... public static void main (final java.lang.String[] options_15) throws java.lang.Exception { final java.lang.String messageClassifier_textPredict_800 = MessageClassifier.textPredict; if (messageClassifier_textPredict_800 == "a") { if (messageClassifier_textPredict_800 == "b" || messageClassifier_textPredict_800 == "y" || messageClassifier_textPredict_800 == "z") { java.lang.System.out.println("Message classified as : miss") /*virtual*/; return;} else { java.lang.System.out.println("Message classified as : hit") /*virtual*/; return;}} else { if (messageClassifier_textPredict_800 == "b" && messageClassifier_textPredict_800 != "y" && messageClassifier_textPredict_800 != "z") { java.lang.System.out.println("Message classified as : hit") /*virtual*/; return;} else { java.lang.System.out.println("Message classified as : miss") /*virtual*/; return;}} } //-------------------------------------- 13 sec - JScp version 0.0.77
Пример 2. Классификатор ZeroR системы Weka. Для описанного примера он всегда решает, что "miss". Остаточная программа
//-------------------------------------- 0 sec - method MessageClassifier.main(java.lang.String[]) //-------------------------------------- 3 sec - postprocessing... public static void main (final java.lang.String[] options_17) throws java.lang.Exception { java.lang.System.out.println("Message classified as : miss") /*virtual*/; return; } //-------------------------------------- 4 sec - JScp version 0.0.77
Пример 3. Классификатор IB1 системы Weka. Остаточная программа
//-------------------------------------- 0 sec - method MessageClassifier.main(java.lang.String[]) //-------------------------------------- 30 sec - postprocessing... public static void main (final java.lang.String[] options_23) throws java.lang.Exception { final java.lang.String messageClassifier_textPredict_2194 = MessageClassifier.textPredict; if (messageClassifier_textPredict_2194 == "a" || messageClassifier_textPredict_2194 == "b" || messageClassifier_textPredict_2194 != "y" && messageClassifier_textPredict_2194 != "z") { java.lang.System.out.println("Message classified as : hit") /*virtual*/; return;} else { java.lang.System.out.println("Message classified as : miss") /*virtual*/; return;} } //-------------------------------------- 33 sec - JScp version 0.0.77
В этом примере я сделал изменение в
программе weka\core\Utils.java. Строку
public static double SMALL = 1e-6;
заменил на
public static final double SMALL = 1e-6;
Без использования java\lang\Double.java пример не суперкомпилировался.
Пример 4. Классификатор IBk системы Weka.
Пример 5. Классификатор SMO системы Weka.
В обоих примерах не удалось получить результаты. В поддиректориях находятся мои попытки что-то понять, изменяя параметр суперкомпиляции
-i
При -i3 в обоих случаях происходила аварийная остановка, которой раньше не наблюдал. (файл *3.js)