чтение текстового файла против определенных слов

Я создаю инструмент в Java Eclipse, который будет различать, содержит ли предложение определенное слово или нет.

Я использую инструмент twitter4j, чтобы иметь возможность искать твиты в твиттере.

Я использовал теггер Стэнфордского НЛП, чтобы иметь возможность помечать твиты из твиттера. Затем это сохраняется в текстовом файле.

Вот код

public class TextTag {

 public static void main(String[] args) throws IOException,
 ClassNotFoundException {

 String tagged;

 // Initialize the tagger
 MaxentTagger tagger = new MaxentTagger("taggers/english-left3words-distsim.tagger");

 // The sample string
 String sample = "Output Tagged";

 //The tagged string
 tagged = tagger.tagString(sample);

 //output the tagged sample string onto your console
 //System.out.println(tagged);

 /*pick up some sentences from the file ouput.txt and store the output of
 tagged sentences in another file EntityTagged.txt. */

 FileInputStream fstream = new FileInputStream("Output.txt");
 DataInputStream in = new DataInputStream(fstream);
 BufferedReader br = new BufferedReader(new InputStreamReader(in));

 //we will now pick up sentences line by line from the file ouput.txt and store it in the string sample
 while((sample = br.readLine())!=null)
 {
 //tag the string
 tagged = tagger.tagString(sample);
 FileWriter q = new FileWriter("EntityTagged.txt",true);
 BufferedWriter out =new BufferedWriter(q);
 //write it to the file EntityTagged.txt
 out.write(tagged);
 out.newLine();
 out.close();

 }

Мой следующий шаг — использовать помеченные твиты из EntityTagged.txt и сравнить их со строкой положительных и отрицательных слов.

Я создал 2 текстовых файла, список положительных слов и список отрицательных слов, и моя цель состоит в том, чтобы перебрать 10 различных тегированных твитов в файле «EntityTagged.txt» в сравнении с файлами положительных.txt и отрицательных.txt для узнайте, появляется ли слово, чтобы я мог отличить положительные или отрицательные твиты

Мой конечный результат должен иметь

Твит 1: положительный Твит 2: отрицательный Твит 3: отрицательный

так далее

На данный момент я изо всех сил пытаюсь создать алгоритм, который может реализовать это

Любая помощь будет высоко ценится

Спасибо


person user3406318    schedule 24.03.2014    source источник


Ответы (1)


Вот мой пятиминутный алгоритм. Сохраняйте положительные и отрицательные слова в виде строк с разделителями. Затем просмотрите слова в своем твите, чтобы увидеть, существуют ли они в строках с разделителями. Вам нужно будет расширить разделенное регулярное выражение, чтобы включить все специальные символы:

String positiveWords = "|nice|happy|great|";
positiveWords = positiveWords.toLowerCase();

String negativeWords = "|bad|awful|mean|yuck|sad|";
negativeWords = negativeWords.toLowerCase();

String tweetOne = "nice day happy not sad at all";
tweetOne = tweetOne.toLowerCase();

String[] arrWords = tweetOne.split("\\s");
int value = 0;
for (int i=0; i < arrWords.length; i++) {

    if (positiveWords.indexOf("|"+arrWords[i]+"|") != -1) {
        System.out.println("POS word(+1): " + arrWords[i]);
        value++;
    }
    if (negativeWords.indexOf("|"+arrWords[i]+"|") != -1) {
        System.out.println("NEG word(-1): " + arrWords[i]);
        value--;
    }            
}

System.out.println("positive/negative value: " + value);
person Edwin Torres    schedule 24.03.2014
comment
Большое вам спасибо за вашу помощь. Как бы я прочитал в текстовых файлах, которые я уже создал для положительных слов, отрицательных слов и твитов - person user3406318; 25.03.2014