Monday, 30 August 2021

DeepLearning4j Classification using WEKA Java Code

This code classify Iris dataset using DeepLearning4j algorithm using weka in java.


Requirements:

===========

Download all jar files for execute the following java code


Jar files for DeepLearning4j Link -->  https://drive.google.com/drive/folders/1AoHscb4L5ooDtCRZWjg5TakitjuPWKD6?usp=sharing


Datasets

========

IrisTrainingDataset.arff --> https://alljavacodeiknow.blogspot.com/2021/08/iris-training-dataset.html


IrisTestingDataset.arff --> https://alljavacodeiknow.blogspot.com/2021/08/iris-testing-dataset.html




Source Code:

============





Output:

=======

Before execute the java code, add all jar files in your project Libraries








Iris Testing Dataset

 @RELATION IrisTestingDataset


@ATTRIBUTE sepallength REAL

@ATTRIBUTE sepalwidth REAL

@ATTRIBUTE petallength REAL

@ATTRIBUTE petalwidth REAL

@ATTRIBUTE class {Iris-setosa, Iris-versicolor, Iris-virginica}


@DATA

5.1,3.5,1.4,0.2,?

7.0,3.2,4.7,1.4,?

6.5,3.0,5.5,1.8,?

4.9,3.0,1.4,0.2,?

7.0,3.2,4.7,1.4,?

6.3,3.3,6.0,2.5,?

6.9,3.1,5.4,2.1,?

6.7,3.1,5.6,2.4,?

6.9,3.1,5.1,2.3,?

5.8,2.7,5.1,1.9,?

5.6,2.7,4.2,1.3,?

5.7,3.0,4.2,1.2,?

5.7,2.9,4.2,1.3,?

6.2,2.9,4.3,1.3,?

5.1,2.5,3.0,1.1,?

5.7,2.8,4.1,1.3,?

6.3,3.3,6.0,2.5,?

5.1,3.8,1.6,0.2,?

4.6,3.2,1.4,0.2,?

5.1,3.5,1.4,0.2,?

5.3,3.7,1.5,0.2,?

5.0,3.3,1.4,0.2,?

5.7,2.8,4.5,1.3,?

6.3,3.3,4.7,1.6,?

4.9,2.4,3.3,1.0,?

6.6,2.9,4.6,1.3,?

5.2,2.7,3.9,1.4,?

5.0,2.0,3.5,1.0,?

5.9,3.0,4.2,1.5,?

6.0,2.2,4.0,1.0,?

6.1,2.9,4.7,1.4,?

5.6,2.9,3.6,1.3,?

6.7,3.1,4.4,1.4,?

5.6,3.0,4.5,1.5,?

5.8,2.7,4.1,1.0,?

6.2,2.2,4.5,1.5,?

5.6,2.5,3.9,1.1,?

5.9,3.2,4.8,1.8,?

6.1,2.8,4.0,1.3,?

6.3,2.5,4.9,1.5,?

6.1,2.8,4.7,1.2,?

6.4,2.9,4.3,1.3,?

6.6,3.0,4.4,1.4,?

6.8,2.8,4.8,1.4,?

6.7,3.0,5.0,1.7,?

6.0,2.9,4.5,1.5,?

5.7,2.6,3.5,1.0,?

5.5,2.4,3.8,1.1,?

5.5,2.4,3.7,1.0,?

5.8,2.7,3.9,1.2,?

6.0,2.7,5.1,1.6,?

5.4,3.0,4.5,1.5,?

6.0,3.4,4.5,1.6,?

6.7,3.1,4.7,1.5,?

6.3,2.3,4.4,1.3,?

5.6,3.0,4.1,1.3,?

5.5,2.5,4.0,1.3,?

5.5,2.6,4.4,1.2,?

6.1,3.0,4.6,1.4,?

5.8,2.6,4.0,1.2,?

5.0,2.3,3.3,1.0,?

5.6,2.7,4.2,1.3,?

5.7,3.0,4.2,1.2,?

5.7,2.9,4.2,1.3,?

6.2,2.9,4.3,1.3,?

5.1,2.5,3.0,1.1,?

5.7,2.8,4.1,1.3,?

6.3,3.3,6.0,2.5,?

5.8,2.7,5.1,1.9,?

7.1,3.0,5.9,2.1,?

6.3,2.9,5.6,1.8,?

6.5,3.0,5.8,2.2,?

7.6,3.0,6.6,2.1,?

4.9,2.5,4.5,1.7,?

7.3,2.9,6.3,1.8,?

6.7,2.5,5.8,1.8,?

7.2,3.6,6.1,2.5,?

Iris Training Dataset

 @RELATION IrisTrainingDataset


@ATTRIBUTE sepallength REAL

@ATTRIBUTE sepalwidth REAL

@ATTRIBUTE petallength REAL

@ATTRIBUTE petalwidth REAL

@ATTRIBUTE class {Iris-setosa, Iris-versicolor, Iris-virginica}


@DATA

5.1,3.5,1.4,0.2,Iris-setosa

7.0,3.2,4.7,1.4,Iris-versicolor

6.5,3.0,5.5,1.8,Iris-virginica

4.9,3.0,1.4,0.2,Iris-setosa

4.7,3.2,1.3,0.2,Iris-setosa

4.6,3.1,1.5,0.2,Iris-setosa

5.0,3.6,1.4,0.2,Iris-setosa

5.4,3.9,1.7,0.4,Iris-setosa

4.6,3.4,1.4,0.3,Iris-setosa

5.0,3.4,1.5,0.2,Iris-setosa

4.4,2.9,1.4,0.2,Iris-setosa

4.9,3.1,1.5,0.1,Iris-setosa

5.4,3.7,1.5,0.2,Iris-setosa

4.8,3.4,1.6,0.2,Iris-setosa

4.8,3.0,1.4,0.1,Iris-setosa

4.3,3.0,1.1,0.1,Iris-setosa

5.8,4.0,1.2,0.2,Iris-setosa

5.7,4.4,1.5,0.4,Iris-setosa

5.4,3.9,1.3,0.4,Iris-setosa

5.1,3.5,1.4,0.3,Iris-setosa

5.7,3.8,1.7,0.3,Iris-setosa

5.1,3.8,1.5,0.3,Iris-setosa

5.4,3.4,1.7,0.2,Iris-setosa

5.1,3.7,1.5,0.4,Iris-setosa

4.6,3.6,1.0,0.2,Iris-setosa

5.1,3.3,1.7,0.5,Iris-setosa

4.8,3.4,1.9,0.2,Iris-setosa

5.0,3.0,1.6,0.2,Iris-setosa

5.0,3.4,1.6,0.4,Iris-setosa

5.2,3.5,1.5,0.2,Iris-setosa

5.2,3.4,1.4,0.2,Iris-setosa

4.7,3.2,1.6,0.2,Iris-setosa

4.8,3.1,1.6,0.2,Iris-setosa

5.4,3.4,1.5,0.4,Iris-setosa

5.2,4.1,1.5,0.1,Iris-setosa

5.5,4.2,1.4,0.2,Iris-setosa

4.9,3.1,1.5,0.1,Iris-setosa

5.0,3.2,1.2,0.2,Iris-setosa

5.5,3.5,1.3,0.2,Iris-setosa

4.9,3.1,1.5,0.1,Iris-setosa

4.4,3.0,1.3,0.2,Iris-setosa

5.1,3.4,1.5,0.2,Iris-setosa

5.0,3.5,1.3,0.3,Iris-setosa

4.5,2.3,1.3,0.3,Iris-setosa

4.4,3.2,1.3,0.2,Iris-setosa

5.0,3.5,1.6,0.6,Iris-setosa

5.1,3.8,1.9,0.4,Iris-setosa

4.8,3.0,1.4,0.3,Iris-setosa

5.1,3.8,1.6,0.2,Iris-setosa

4.6,3.2,1.4,0.2,Iris-setosa

5.3,3.7,1.5,0.2,Iris-setosa

5.0,3.3,1.4,0.2,Iris-setosa

6.4,3.2,4.5,1.5,Iris-versicolor

6.9,3.1,4.9,1.5,Iris-versicolor

5.5,2.3,4.0,1.3,Iris-versicolor

6.5,2.8,4.6,1.5,Iris-versicolor

5.7,2.8,4.5,1.3,Iris-versicolor

6.3,3.3,4.7,1.6,Iris-versicolor

4.9,2.4,3.3,1.0,Iris-versicolor

6.6,2.9,4.6,1.3,Iris-versicolor

5.2,2.7,3.9,1.4,Iris-versicolor

5.0,2.0,3.5,1.0,Iris-versicolor

5.9,3.0,4.2,1.5,Iris-versicolor

6.0,2.2,4.0,1.0,Iris-versicolor

6.1,2.9,4.7,1.4,Iris-versicolor

5.6,2.9,3.6,1.3,Iris-versicolor

6.7,3.1,4.4,1.4,Iris-versicolor

5.6,3.0,4.5,1.5,Iris-versicolor

5.8,2.7,4.1,1.0,Iris-versicolor

6.2,2.2,4.5,1.5,Iris-versicolor

5.6,2.5,3.9,1.1,Iris-versicolor

5.9,3.2,4.8,1.8,Iris-versicolor

6.1,2.8,4.0,1.3,Iris-versicolor

6.3,2.5,4.9,1.5,Iris-versicolor

6.1,2.8,4.7,1.2,Iris-versicolor

6.4,2.9,4.3,1.3,Iris-versicolor

6.6,3.0,4.4,1.4,Iris-versicolor

6.8,2.8,4.8,1.4,Iris-versicolor

6.7,3.0,5.0,1.7,Iris-versicolor

6.0,2.9,4.5,1.5,Iris-versicolor

5.7,2.6,3.5,1.0,Iris-versicolor

5.5,2.4,3.8,1.1,Iris-versicolor

5.5,2.4,3.7,1.0,Iris-versicolor

5.8,2.7,3.9,1.2,Iris-versicolor

6.0,2.7,5.1,1.6,Iris-versicolor

5.4,3.0,4.5,1.5,Iris-versicolor

6.0,3.4,4.5,1.6,Iris-versicolor

6.7,3.1,4.7,1.5,Iris-versicolor

6.3,2.3,4.4,1.3,Iris-versicolor

5.6,3.0,4.1,1.3,Iris-versicolor

5.5,2.5,4.0,1.3,Iris-versicolor

5.5,2.6,4.4,1.2,Iris-versicolor

6.1,3.0,4.6,1.4,Iris-versicolor

5.8,2.6,4.0,1.2,Iris-versicolor

5.0,2.3,3.3,1.0,Iris-versicolor

5.6,2.7,4.2,1.3,Iris-versicolor

5.7,3.0,4.2,1.2,Iris-versicolor

5.7,2.9,4.2,1.3,Iris-versicolor

6.2,2.9,4.3,1.3,Iris-versicolor

5.1,2.5,3.0,1.1,Iris-versicolor

5.7,2.8,4.1,1.3,Iris-versicolor

6.3,3.3,6.0,2.5,Iris-virginica

5.8,2.7,5.1,1.9,Iris-virginica

7.1,3.0,5.9,2.1,Iris-virginica

6.3,2.9,5.6,1.8,Iris-virginica

6.5,3.0,5.8,2.2,Iris-virginica

7.6,3.0,6.6,2.1,Iris-virginica

4.9,2.5,4.5,1.7,Iris-virginica

7.3,2.9,6.3,1.8,Iris-virginica

6.7,2.5,5.8,1.8,Iris-virginica

7.2,3.6,6.1,2.5,Iris-virginica

6.5,3.2,5.1,2.0,Iris-virginica

6.4,2.7,5.3,1.9,Iris-virginica

6.8,3.0,5.5,2.1,Iris-virginica

5.7,2.5,5.0,2.0,Iris-virginica

5.8,2.8,5.1,2.4,Iris-virginica

6.4,3.2,5.3,2.3,Iris-virginica

7.7,3.8,6.7,2.2,Iris-virginica

7.7,2.6,6.9,2.3,Iris-virginica

6.0,2.2,5.0,1.5,Iris-virginica

6.9,3.2,5.7,2.3,Iris-virginica

5.6,2.8,4.9,2.0,Iris-virginica

7.7,2.8,6.7,2.0,Iris-virginica

6.3,2.7,4.9,1.8,Iris-virginica

6.7,3.3,5.7,2.1,Iris-virginica

7.2,3.2,6.0,1.8,Iris-virginica

6.2,2.8,4.8,1.8,Iris-virginica

6.1,3.0,4.9,1.8,Iris-virginica

6.4,2.8,5.6,2.1,Iris-virginica

7.2,3.0,5.8,1.6,Iris-virginica

7.4,2.8,6.1,1.9,Iris-virginica

7.9,3.8,6.4,2.0,Iris-virginica

6.4,2.8,5.6,2.2,Iris-virginica

6.3,2.8,5.1,1.5,Iris-virginica

6.1,2.6,5.6,1.4,Iris-virginica

7.7,3.0,6.1,2.3,Iris-virginica

6.3,3.4,5.6,2.4,Iris-virginica

6.4,3.1,5.5,1.8,Iris-virginica

6.0,3.0,4.8,1.8,Iris-virginica

6.9,3.1,5.4,2.1,Iris-virginica

6.7,3.1,5.6,2.4,Iris-virginica

6.9,3.1,5.1,2.3,Iris-virginica

5.8,2.7,5.1,1.9,Iris-virginica

6.8,3.2,5.9,2.3,Iris-virginica

6.7,3.3,5.7,2.5,Iris-virginica

6.7,3.0,5.2,2.3,Iris-virginica

6.3,2.5,5.0,1.9,Iris-virginica

6.5,3.0,5.2,2.0,Iris-virginica

6.2,3.4,5.4,2.3,Iris-virginica

5.9,3.0,5.1,1.8,Iris-virginica

Friday, 20 March 2020

Text Classification using Naive Bayes Algorithm in Java, Classifying Text with Naive Bayes Algorithm Java, Spam Detection using Naive Bayes Algorithm

This source code shows how to classify text using Naive Bayes classification algorithm in java.

Requirements:

weka-stable-3.6.10.jar


Source Code:




Output:

In command prompt first set jar file for run using this below line

set classpath=%classpath%;weka-stable-3.6.10.jar;

javac TextClassifier.java

java TextClassifier







Text Classification using SVM Algorithm in Java, Classifying Text with SVM Algorithm Java, Spam Detection using SVM Algorithm

This source code shows how to classify text using SVM classification algorithm in java.


Requirements:

weka-stable-3.6.10.jar


Source Code:



Output:

In command prompt first set jar file for run using this below line

set classpath=%classpath%;weka-stable-3.6.10.jar;

javac TextClassifier.java

java TextClassifier









Text Classification using C4.5 Algorithm in Java, Classifying Text with C4.5 Algorithm Java, Spam Detection using C4.5 Algorithm

This source code shows how to classify text using C4.5 classification algorithm in java. In this example we show spam detection techniques.


Requirements:


weka-stable-3.6.10.jar







Output:







Thursday, 20 February 2020

Traffic Flow Dataset

This dataset contains traffic flow details. It has 16 attributes.

(1) Current_Location
(2) Destination
(3) Route
(4) Distance
(5) Average_Speed
(6) Time_to_Reach_Destination
(7) Date_&_Time
(8) Two_Wheeler
(9) Truck_Lorry
(10) Car
(11) Bus
(12) Non_Motorised_Vehicles
(13) Other_Motorised_Vehicles
(14) Three_Wheeler
(15) SUVOrStation_Wagon
(16) Jeep

Wednesday, 30 May 2018

SVM Classification using WEKA Java Code


In machine learning, support vector machines (SVMs, also support vector networks) are supervised learning models with associated learning algorithms that analyze data used for classification and regression analysis. A Support Vector Machine (SVM) is a discriminative classifier formally defined by a separating hyperplane. In other words, given labeled training data (supervised learning), the algorithm outputs an optimal hyperplane which categorizes new examples. The vectors (cases) that define the hyperplane are the support vectors. SVM uses a technique called the kernel trick to transform your data and then based on these transformations it finds an optimal boundary between the possible outputs.


Requirements:
==========
2 Jar Files

2 Datasets

How to Implement:
==============

ClevelandHeartDiseaseTrainingDataset.arff contains lot of patients Health Records. It has 5 attributes and 1 class attribute.
  1) sex: patient sex (1 = male, 0 = female), 
  2) cp: chest pain type (1 = typical angina, 2 = atypical angina, 3 = non-anginal pain, 4 = asymptomatic), 
  3) slope: the slope of the peak exercise ST segment (1 = upsloping, 2 = flat, 3 = downsloping)
  4) ca: number of major vessels (0-3) colored by flourosopy
  5) thal: (3 = normal, 6 = fixed defect, 7 = reversable defect)
  6) class: (0 = no heart disease, 1 = presence of heart disease)
  
This Classification Algorithm classify this training dataset. After Classification, it generate some classification rules. Followed by, this algorithm load ClevelandHeartDiseaseTestingDataset.arff. This testing dataset contains 5 attributes with one class attribute. This class attribute contains (?) question mark. Because we predict each testing record is possible to presence of heart disease or not. Then this classification algorithm predicts each records class attribute value based on classification rules (It is generated after Training Process).


How to Run this Code in Command Prompt:
===================================

>set classpath=%classpath%;weka-3.7.1-beta.jar;

>set classpath=%classpath%;weka-3.7.3.jar;

>javac SVMClassification.java

>java SVMClassification

Output: SVMOutput.txt


SVM Classification Output

@relation ClevelandHeartDiseaseTestingDataset

@attribute sex {0,1}
@attribute cp {1,2,3,4}
@attribute slope {1,2,3}
@attribute ca {0,1,2,3}
@attribute thal {3,6,7}
@attribute class {0,1}

@data
1,1,2,0,3,1
0,1,1,0,3,1
1,2,2,0,3,1
1,3,1,2,7,0


Tuesday, 29 May 2018

Naive Bayes Classification using WEKA Java Code

Naive Bayes is a simple technique for constructing classifiers: models that assign class labels to problem instances, represented as vectors of feature values, where the class labels are drawn from some finite set. It is not a single algorithm for training such classifiers, but a family of algorithms based on a common principle: all naive Bayes classifiers assume that the value of a particular feature is independent of the value of any other feature, given the class variable. For example, a fruit may be considered to be an apple if it is red, round, and about 10 cm in diameter. A naive Bayes classifier considers each of these features to contribute independently to the probability that this fruit is an apple, regardless of any possible correlations between the color, roundness, and diameter features.


Requirements:
==========
2 Jar Files

2 Datasets


How to Implement:
==============

ClevelandHeartDiseaseTrainingDataset.arff contains lot of patients Health Records. It has 5 attributes and 1 class attribute.
  1) sex: patient sex (1 = male, 0 = female), 
  2) cp: chest pain type (1 = typical angina, 2 = atypical angina, 3 = non-anginal pain, 4 = asymptomatic), 
  3) slope: the slope of the peak exercise ST segment (1 = upsloping, 2 = flat, 3 = downsloping)
  4) ca: number of major vessels (0-3) colored by flourosopy
  5) thal: (3 = normal, 6 = fixed defect, 7 = reversable defect)
  6) class: (0 = no heart disease, 1 = presence of heart disease)
  
This Classification Algorithm classify this training dataset. After Classification, it generate some classification rules. Followed by, this algorithm load ClevelandHeartDiseaseTestingDataset.arff. This testing dataset contains 5 attributes with one class attribute. This class attribute contains (?) question mark. Because we predict each testing record is possible to presence of heart disease or not. Then this classification algorithm predicts each records class attribute value based on classification rules (It is generated after Training Process).

How to Run this Code in Command Prompt:
===================================

>set classpath=%classpath%;weka-3.7.1-beta.jar;

>set classpath=%classpath%;weka-3.7.3.jar;

>javac NaiveBayesClassification.java

>java NaiveBayesClassification



Naive Bayes Classification Output


@relation ClevelandHeartDiseaseTestingDataset

@attribute sex {0,1}
@attribute cp {1,2,3,4}
@attribute slope {1,2,3}
@attribute ca {0,1,2,3}
@attribute thal {3,6,7}
@attribute class {0,1}

@data
1,1,2,0,3,1
0,1,1,0,3,1
1,2,2,0,3,1
1,3,1,2,7,0

Monday, 28 May 2018

MLR Classification Output

@relation ClevelandHeartDiseaseData

@attribute sex {0,1}
@attribute cp {1,2,3,4}
@attribute slope {1,2,3}
@attribute ca {0,1,2,3}
@attribute thal {3,6,7}
@attribute class {0,1}

@data
1,1,2,0,3,1
0,1,1,0,3,1
1,2,2,0,3,1
1,3,1,2,7,0

MLR Classification using WEKA Java Code

MLR is short form for Multinomial Logistic Regression algorithm. Multinomial logistic regression is known by a variety of other names, including softmax regression, multiclass LR, multinomial logit, polytomous LR, conditional maximum entropy model and maximum entropy (MaxEnt) classifier. Multinomial logistic regression is a classification method that generalizes logistic regression to multiclass problems, i.e. with more than two possible discrete outcomes. That is, it is a model that is used to predict the probabilities of the different possible outcomes of a categorically distributed dependent variable, given a set of independent variables (which may be real-valued, binary-valued, categorical-valued, etc.).

Requirements:
=============
2 Jar Files

2 Datasets

How to Implement:
=================

ClevelandHeartDiseaseTrainingDataset.arff contains lot of patients Health Records. It has 5 attributes and 1 class attribute.
  1) sex: patient sex (1 = male, 0 = female), 
  2) cp: chest pain type (1 = typical angina, 2 = atypical angina, 3 = non-anginal pain, 4 = asymptomatic), 
  3) slope: the slope of the peak exercise ST segment (1 = upsloping, 2 = flat, 3 = downsloping)
  4) ca: number of major vessels (0-3) colored by flourosopy
  5) thal: (3 = normal, 6 = fixed defect, 7 = reversable defect)
  6) class: (0 = no heart disease, 1 = presence of heart disease)
  
This Classification Algorithm classify this training dataset. After Classification, it generate some classification rules. Followed by, this algorithm load ClevelandHeartDiseaseTestingDataset.arff. This testing dataset contains 5 attributes with one class attribute. This class attribute contains (?) question mark. Because we predict each testing record is possible to presence of heart disease or not. Then this classification algorithm predicts each records class attribute value based on classification rules (It is generated after Training Process).

How to Run this Code in Command Prompt:
===============================

>set classpath=%classpath%;weka-3.7.1-beta.jar;

>set classpath=%classpath%;weka-3.7.3.jar;

>javac MLRClassification.java

>java MLRClassification

Output: MLROutput.txt


Saturday, 26 May 2018

MLP Classification Output

@relation ClevelandHeartDiseaseTestingDataset

@attribute sex {0,1}
@attribute cp {1,2,3,4}
@attribute slope {1,2,3}
@attribute ca {0,1,2,3}
@attribute thal {3,6,7}
@attribute class {0,1}

@data
1,1,2,0,3,1
0,1,1,0,3,1
1,2,2,0,3,1

1,3,1,2,7,0

MLP Classification using WEKA Java Code

MLP is short form for Multi Layer Perceptron algorithm. The multilayer perceptron is the most known and most frequently used type of neural network. On most occasions, the signals are transmitted within the network in one direction: from input to output. There is no loop, the output of each neuron does not affect the neuron itself. Using the backpropagation algorithm for training, they can be used for a wide range of applications, from the functional approximation to prediction in various fields, such as estimating the load of a calculating system or modelling the evolution of chemical reactions of polymerization, described by complex systems of differential equations.


Requirements:
===========
2 Jar Files


2 Datasets


How to Implement:
==============
ClevelandHeartDiseaseTrainingDataset.arff contains lot of patients Health Records. It has 5 attributes and 1 class attribute.
  1) sex: patient sex (1 = male, 0 = female), 
  2) cp: chest pain type (1 = typical angina, 2 = atypical angina, 3 = non-anginal pain, 4 = asymptomatic), 
  3) slope: the slope of the peak exercise ST segment (1 = upsloping, 2 = flat, 3 = downsloping)
  4) ca: number of major vessels (0-3) colored by flourosopy
  5) thal: (3 = normal, 6 = fixed defect, 7 = reversable defect)
  6) class: (0 = no heart disease, 1 = presence of heart disease)
  
  
This Classification Algorithm classify this training dataset. After Classification, it generate some classification rules. Followed by, this algorithm load ClevelandHeartDiseaseTestingDataset.arff. This testing dataset contains 5 attributes with one class attribute. This class attribute contains (?) question mark. Because we predict each testing record is possible to presence of heart disease or not. Then this classification algorithm predicts each records class attribute value based on classification rules (It is generated after Training Process).


How to Run this Code in Command Prompt:
================================

>set classpath=%classpath%;weka-3.7.1-beta.jar;

>set classpath=%classpath%;weka-3.7.3.jar;

>javac MLPClassification.java

>java MLPClassification


Output: MLPOutput.txt