Skip to content
This repository was archived by the owner on Jul 27, 2020. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 6 additions & 2 deletions ang.parent/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@
<module>../ang.htmlunit</module>
<module>../ang.twitter</module>
<module>../ang.utils</module>
<module>../ang.corpusreader</module>
<module>../ang.generator</module>

</modules>

Expand All @@ -31,8 +33,10 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.3</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<fork>true</fork>
<executable>C:\Program Files\Java\jdk1.8.0_51\bin\javac.exe</executable>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
Expand Down
14 changes: 10 additions & 4 deletions generator/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -2,19 +2,25 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>ang.generator</groupId>
<artifactId>generator</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>de.uni_koeln.spinfo.ang</groupId>
<artifactId>ang.parent</artifactId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../ang.parent</relativePath>
</parent>

<artifactId>ang.generator</artifactId>
<packaging>jar</packaging>

<name>generator</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>


<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
Expand Down
18 changes: 12 additions & 6 deletions generator/src/main/java/ang/generator/generator/App.java
Original file line number Diff line number Diff line change
Expand Up @@ -6,14 +6,20 @@ public class App
{
public static void main( String[] args ) throws ClassNotFoundException, IOException
{

/* english Tokens - 109583
* davon Staemme - 46801
* prafixe - 144
* suffixe - 117
* ConcatList Praefixe - 6,7 Millionen
* ConcatList Sufffixe - 5,5 Millionen
* Zirkum - 788 Millionen
* */
// Generator g = new Generator();
// g.generateList();
// g.generateSufPrae();
//
// g.generateSufPrae();
ToText t = new ToText();
t.writeToText("anglizismenSuf");
t.writeToText("anglizismenPrae");
t.writeToText("anglizismenStemms");
// t.writeToText("anglizismenPrae");
// t.writeToText("anglizismenSuf");
}
}
133 changes: 75 additions & 58 deletions generator/src/main/java/ang/generator/generator/Generator.java
Original file line number Diff line number Diff line change
Expand Up @@ -7,143 +7,151 @@
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;

import org.tartarus.snowball.SnowballStemmer;
import org.tartarus.snowball.ext.englishStemmer;
import org.tartarus.snowball.ext.germanStemmer;

import de.uni_koeln.spinfo.ang.utils.FileUtils;

public class Generator {
// liste der englischen Tokens
// liste der englischen Tokens
private List<String> englInput;
// Liste der deutschen Präfixe
// Liste der deutschen Präfixe
private List<String> praefix;
// Liste der deutschen Suffixe
// Liste der deutschen Suffixe
private List<String> suffix;
private List<String> stopWords;
private List<String> englStemms;
// private List<String> stopWords;
private HashSet<String> englStemms;
private List<String> anglizismenPrae = new ArrayList<String>();
private List<String> anglizismenSuf = new ArrayList<String>();
private List<String> anglizismenZirk = new LinkedList<String>();


/*
* Füllt die Listen mit Inhalt.
* Liest Input Text-Files mit Präfixen, Suffixen,
* englischen Tokens und stopwords aus und serialisiert diese.
* */

* Füllt die Listen mit Inhalt. Liest Input Text-Files mit Präfixen,
* Suffixen, englischen Tokens und stopwords aus und serialisiert diese.
*/

public void generateList() throws IOException {
HashSet<String> p = new HashSet<String>();
p.addAll(FileUtils.fileToList(FileUtils.inputPath
+ "angGenerator/affix/praefix.txt"));
p.addAll(FileUtils.fileToList(FileUtils.inputPath + "angGenerator/affix/praefix.txt"));
System.out.println("Anzahl der Praefixe: " + p.size());

HashSet<String> s = new HashSet<String>();
s.addAll(FileUtils.fileToList(FileUtils.inputPath
+ "angGenerator/affix/suffixe.txt"));
s.addAll(FileUtils.fileToList(FileUtils.inputPath + "angGenerator/affix/suffixe.txt"));
System.out.println("Anzahl der Suffixe: " + s.size());

HashSet<String> e = new HashSet<String>();
e.addAll(FileUtils.fileToList(FileUtils.inputPath
+ "angGenerator/corncob_lowercase.txt"));
System.out.println("Anzahl der englischen Worte: " + e.size());

stopWords = FileUtils.fileToList(FileUtils.inputPath
+ "angGenerator/stopwords.txt");
System.out.println("Anzahl der Stopwords: " + stopWords.size());

e.removeAll(stopWords);
System.out.println("nach Entfernung der StopWords hat englInput: "
+ e.size());
e.addAll(FileUtils.fileToList(FileUtils.inputPath + "angGenerator/silwordsEn.txt"));
System.out.println("Anzahl der englischen Worteintraege: " + e.size());

// stopWords = FileUtils.fileToList(FileUtils.inputPath
// + "angGenerator/stopwords.txt");
// System.out.println("Anzahl der Stopwords: " + stopWords.size());
//
// e.removeAll(stopWords);
// System.out.println("nach Entfernung der StopWords hat englInput: "
// + e.size());

List<String> englInput = new ArrayList<String>(e);
List<String> praefix = new ArrayList<String>(p);
List<String> suffix = new ArrayList<String>(s);


FileUtils.serializeList(englInput, "generator/lists/englishInput");
FileUtils.serializeList(praefix, "generator/lists/praefix");
FileUtils.serializeList(suffix, "generator/lists/suffix");

}

@SuppressWarnings("unchecked")
private void read() throws ClassNotFoundException, IOException {

FileInputStream fis = new FileInputStream(FileUtils.outputPath
+ "/generator/lists/englishInput");
FileInputStream fis = new FileInputStream(FileUtils.outputPath + "/generator/lists/englishInput");
ObjectInputStream ois = new ObjectInputStream(fis);
englInput = (List<String>) ois.readObject();
ois.close();

FileInputStream fis1 = new FileInputStream(FileUtils.outputPath
+ "/generator/lists/praefix");
FileInputStream fis1 = new FileInputStream(FileUtils.outputPath + "/generator/lists/praefix");
ObjectInputStream ois1 = new ObjectInputStream(fis1);
praefix = (List<String>) ois1.readObject();
ois1.close();

FileInputStream fis2 = new FileInputStream(FileUtils.outputPath
+ "/generator/lists/suffix");
FileInputStream fis2 = new FileInputStream(FileUtils.outputPath + "/generator/lists/suffix");
ObjectInputStream ois2 = new ObjectInputStream(fis2);
suffix = (List<String>) ois2.readObject();
ois2.close();

}

private List<String> getStems() {
private HashSet<String> getStems() throws IOException {

SnowballStemmer stemmer = new englishStemmer();
List<String> result = new ArrayList<String>();
HashSet<String> result = new HashSet<String>();

for (String t : englInput) {
stemmer.setCurrent(t);
stemmer.stem();
result.add(stemmer.getCurrent());
if (t.length() > 1) {
stemmer.setCurrent(t);
stemmer.stem();
String string = stemmer.getCurrent();
if(string.length()>4 && !string.isEmpty() && string != null){
result.add(string);}
}
}
// System.out.println("Anzahl der englischen WortStaemme: " + result.size());
List<String> list = new ArrayList<String>();
for (String string : result) {
list.add(string);
}
System.out.println(result.size());

FileUtils.serializeList(list, "anglizismenStemms");
System.out.println("serialisierte Staemme: " + list.size());
return result;
}

/*Setzt Stämme und Suffixe/Praefixe zusammen und fügt diese der Liste anglizismenSuf/anglizismenPrae hinzu*/

/*
* Setzt Stämme und Suffixe/Praefixe zusammen und fügt diese der Liste
* anglizismenSuf/anglizismenPrae hinzu
*/

public void generateSufPrae() throws ClassNotFoundException, IOException {
read();

System.out.println("Anzahl der Suffixe " + suffix.size());
anglizismenSuf = generateConcatList(suffix, false);
// System.out.println("Anzahl der Praefixe" + praefix.size());
anglizismenPrae = generateConcatList(praefix, true);

FileUtils.serializeList(anglizismenSuf, "anglizismenSuf");
FileUtils.serializeList(anglizismenPrae, "anglizismenPrae");

}
private List<String> generateConcatList(List<String> affixList, boolean putInFront){

private List<String> generateConcatList(List<String> affixList, boolean putInFront) throws IOException {
List<String> anglizismenAff = new ArrayList<String>();

englStemms = getStems();

for (String englStrig : englStemms) {

for (String praString : affixList) {
String angP = new String();
if(putInFront){
angP = praString + englStrig;}
else{
if(!praString.isEmpty() && praString != null){
if (putInFront) {

angP = praString + englStrig;
} else {
angP = englStrig + praString;
}
anglizismenAff.add(angP);
}
}}
}

return anglizismenAff;
}


public void generateZirkumfix() throws IOException, ClassNotFoundException {
read();
anglizismenSuf = generateConcatList(suffix, false);
int i=0;
int i = 0;

for (String stringSuf : anglizismenSuf) {
System.out.println(stringSuf);
for (String prae : praefix) {
Expand All @@ -154,10 +162,19 @@ public void generateZirkumfix() throws IOException, ClassNotFoundException {
}
System.out.println(i);
i++;

}
System.out.println(anglizismenZirk.size());
FileUtils.serializeList(anglizismenZirk, "anglizismenZirk");
}

public void testStemm(String string) {
SnowballStemmer germStemmer = new germanStemmer();
System.out.println(string);
germStemmer.setCurrent(string);
germStemmer.stem();
String result = germStemmer.getCurrent();
System.out.println(result);
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ public void writeToText(String input) throws IOException, ClassNotFoundException
text = (List<String>) ois.readObject();
ois.close();

StringBuilder sb = new StringBuilder();
StringBuilder sb = new StringBuilder("");
sb.append(" \n ");
for (String string : text) {
sb.append(string);
Expand Down