Modified word tab
This commit is contained in:
parent
a18e52a599
commit
d5d06fd7c5
|
@ -352,11 +352,13 @@ public class StatisticsNew {
|
||||||
// n.gram nivo
|
// n.gram nivo
|
||||||
if (ngramLevel > 1) {
|
if (ngramLevel > 1) {
|
||||||
info.put("n-gram nivo:", String.valueOf(ngramLevel));
|
info.put("n-gram nivo:", String.valueOf(ngramLevel));
|
||||||
} else if (ngramLevel == 1){
|
|
||||||
info.put("n-gram nivo:", "nivo besed");
|
|
||||||
} else {
|
|
||||||
info.put("n-gram nivo:", "nivo črk");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// else if (ngramLevel == 1){
|
||||||
|
// info.put("n-gram nivo:", "nivo besed");
|
||||||
|
// } else {
|
||||||
|
// info.put("n-gram nivo:", "nivo črk");
|
||||||
|
// }
|
||||||
// skip
|
// skip
|
||||||
if (ngramLevel > 1)
|
if (ngramLevel > 1)
|
||||||
info.put("Skip:", isNotEmpty(filter.getSkipValue()) ? filter.getSkipValue().toString() : "0");
|
info.put("Skip:", isNotEmpty(filter.getSkipValue()) ? filter.getSkipValue().toString() : "0");
|
||||||
|
@ -382,15 +384,15 @@ public class StatisticsNew {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isNotEmpty(filter.getTaxonomy()) && Tax.getCorpusTypesWithTaxonomy().contains(corpus.getCorpusType())) {
|
// if (isNotEmpty(filter.getTaxonomy()) && Tax.getCorpusTypesWithTaxonomy().contains(corpus.getCorpusType())) {
|
||||||
ArrayList<String> tax = Tax.getTaxonomyForInfo(corpus.getCorpusType(), filter.getTaxonomy());
|
// ArrayList<String> tax = Tax.getTaxonomyForInfo(corpus.getCorpusType(), filter.getTaxonomy());
|
||||||
|
//
|
||||||
info.put("Taksonomija: ", "");
|
// info.put("Taksonomija: ", "");
|
||||||
String sep = "";
|
// String sep = "";
|
||||||
for (String s : tax) {
|
// for (String s : tax) {
|
||||||
info.put(sep = sep + " ", s);
|
// info.put(sep = sep + " ", s);
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
if (corpus.getCorpusType() == CorpusType.SOLAR) {
|
if (corpus.getCorpusType() == CorpusType.SOLAR) {
|
||||||
HashMap<String, ObservableList<String>> filters = corpus.getSolarFilters();
|
HashMap<String, ObservableList<String>> filters = corpus.getSolarFilters();
|
||||||
|
|
|
@ -109,6 +109,8 @@ public class GUIController extends Application {
|
||||||
ctController.setFfsController(ffsController);
|
ctController.setFfsController(ffsController);
|
||||||
//ctController.setWordFormationTab(wordFormationTab);
|
//ctController.setWordFormationTab(wordFormationTab);
|
||||||
ctController.setWordLevelTab(wordLevelTab);
|
ctController.setWordLevelTab(wordLevelTab);
|
||||||
|
//System.out.println(com.sun.javafx.runtime.VersionInfo.getRuntimeVersion());
|
||||||
|
|
||||||
ctController.setHostServices(getHostServices());
|
ctController.setHostServices(getHostServices());
|
||||||
|
|
||||||
satNew2Controller.setCorpus(corpus);
|
satNew2Controller.setCorpus(corpus);
|
||||||
|
|
|
@ -35,9 +35,11 @@ public class Messages {
|
||||||
public static final String NOTIFICATION_ANALYSIS_COMPLETED = "Analiza je zaključena, rezultati so shranjeni.";
|
public static final String NOTIFICATION_ANALYSIS_COMPLETED = "Analiza je zaključena, rezultati so shranjeni.";
|
||||||
public static final String NOTIFICATION_ANALYSIS_COMPLETED_NO_RESULTS = "Analiza je zaključena, vendar ni bilo moč izračunati statistike, ki bi ustrezala vsem navedenim pogojem.";
|
public static final String NOTIFICATION_ANALYSIS_COMPLETED_NO_RESULTS = "Analiza je zaključena, vendar ni bilo moč izračunati statistike, ki bi ustrezala vsem navedenim pogojem.";
|
||||||
public static final String RESULTS_PATH_SET_TO_DEFAULT = "Lokacija za shranjevanje rezultatov je nastavljena na lokacijo korpusa.";
|
public static final String RESULTS_PATH_SET_TO_DEFAULT = "Lokacija za shranjevanje rezultatov je nastavljena na lokacijo korpusa.";
|
||||||
|
public static final String NOTIFICATION_ANALYSIS_CANCLED = "Analiziranje je bilo prekinjeno.";
|
||||||
|
|
||||||
// ongoing notifications - displayed while processing, dynamically changing
|
// ongoing notifications - displayed while processing, dynamically changing
|
||||||
public static final String ONGOING_NOTIFICATION_ANALYZING_FILE_X_OF_Y = "Analiziram datoteko %d od %d (%s)";
|
public static final String ONGOING_NOTIFICATION_ANALYZING_FILE_X_OF_Y = "Analiziram datoteko %d od %d (%s)";
|
||||||
|
public static final String CANCELING_NOTIFICATION = "Prekinjeno";
|
||||||
|
|
||||||
// Labels
|
// Labels
|
||||||
public static final String LABEL_CORPUS_LOCATION_NOT_SET = "Lokacija korpusa ni nastavljena";
|
public static final String LABEL_CORPUS_LOCATION_NOT_SET = "Lokacija korpusa ni nastavljena";
|
||||||
|
|
|
@ -37,6 +37,10 @@ public class OneWordAnalysisTab {
|
||||||
private ArrayList<Pattern> msd;
|
private ArrayList<Pattern> msd;
|
||||||
private ArrayList<String> msdStrings;
|
private ArrayList<String> msdStrings;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private CheckComboBox<String> alsoVisualizeCCB;
|
||||||
|
private ArrayList<String> alsoVisualize;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
private CheckComboBox<String> taxonomyCCB;
|
private CheckComboBox<String> taxonomyCCB;
|
||||||
private ArrayList<String> taxonomy;
|
private ArrayList<String> taxonomy;
|
||||||
|
@ -49,6 +53,9 @@ public class OneWordAnalysisTab {
|
||||||
@FXML
|
@FXML
|
||||||
private Button computeNgramsB;
|
private Button computeNgramsB;
|
||||||
|
|
||||||
|
@FXML
|
||||||
|
private Button cancel;
|
||||||
|
|
||||||
@FXML
|
@FXML
|
||||||
public ProgressBar ngramProgressBar;
|
public ProgressBar ngramProgressBar;
|
||||||
@FXML
|
@FXML
|
||||||
|
@ -73,7 +80,8 @@ public class OneWordAnalysisTab {
|
||||||
private static final ObservableList<String> N_GRAM_COMPUTE_FOR_WORDS = FXCollections.observableArrayList("lema", "različnica", "oblikoskladenjska oznaka");
|
private static final ObservableList<String> N_GRAM_COMPUTE_FOR_WORDS = FXCollections.observableArrayList("lema", "različnica", "oblikoskladenjska oznaka");
|
||||||
private static final ObservableList<String> N_GRAM_COMPUTE_FOR_LETTERS = FXCollections.observableArrayList("lema", "različnica");
|
private static final ObservableList<String> N_GRAM_COMPUTE_FOR_LETTERS = FXCollections.observableArrayList("lema", "različnica");
|
||||||
private static final ObservableList<String> N_GRAM_COMPUTE_FOR_WORDS_ORTH = FXCollections.observableArrayList("različnica");
|
private static final ObservableList<String> N_GRAM_COMPUTE_FOR_WORDS_ORTH = FXCollections.observableArrayList("različnica");
|
||||||
|
private static final ObservableList<String> alsoVisualizeItemsLemma = FXCollections.observableArrayList("besedna vrsta", "oblikoskladenjska oznaka");
|
||||||
|
private static final ObservableList<String> alsoVisualizeItemsDifferential = FXCollections.observableArrayList("lema", "besedna vrsta", "oblikoskladenjska oznaka");
|
||||||
|
|
||||||
// TODO: pass observables for taxonomy based on header scan
|
// TODO: pass observables for taxonomy based on header scan
|
||||||
// after header scan
|
// after header scan
|
||||||
|
@ -126,6 +134,16 @@ public class OneWordAnalysisTab {
|
||||||
msdTF.setText("");
|
msdTF.setText("");
|
||||||
msd = new ArrayList<>();
|
msd = new ArrayList<>();
|
||||||
|
|
||||||
|
alsoVisualizeCCB.getItems().removeAll();
|
||||||
|
alsoVisualizeCCB.getItems().setAll(alsoVisualizeItemsLemma);
|
||||||
|
alsoVisualizeCCB.getCheckModel().getCheckedItems().addListener((ListChangeListener<String>) c -> {
|
||||||
|
alsoVisualize = new ArrayList<>();
|
||||||
|
ObservableList<String> checkedItems = alsoVisualizeCCB.getCheckModel().getCheckedItems();
|
||||||
|
alsoVisualize.addAll(checkedItems);
|
||||||
|
logger.info(String.format("Selected also visualize items: %s", StringUtils.join(checkedItems, ",")));
|
||||||
|
});
|
||||||
|
alsoVisualizeCCB.getCheckModel().clearChecks();
|
||||||
|
|
||||||
// taxonomy
|
// taxonomy
|
||||||
if (Tax.getCorpusTypesWithTaxonomy().contains(corpus.getCorpusType())) {
|
if (Tax.getCorpusTypesWithTaxonomy().contains(corpus.getCorpusType())) {
|
||||||
taxonomyCCB.getItems().removeAll();
|
taxonomyCCB.getItems().removeAll();
|
||||||
|
@ -334,6 +352,10 @@ public class OneWordAnalysisTab {
|
||||||
for (File f : corpusFiles) {
|
for (File f : corpusFiles) {
|
||||||
readXML(f.toString(), statistic);
|
readXML(f.toString(), statistic);
|
||||||
i++;
|
i++;
|
||||||
|
if (isCancelled()) {
|
||||||
|
updateMessage(CANCELING_NOTIFICATION);
|
||||||
|
break;
|
||||||
|
}
|
||||||
this.updateProgress(i, corpusFiles.size());
|
this.updateProgress(i, corpusFiles.size());
|
||||||
this.updateMessage(String.format(ONGOING_NOTIFICATION_ANALYZING_FILE_X_OF_Y, i, corpusFiles.size(), f.getName()));
|
this.updateMessage(String.format(ONGOING_NOTIFICATION_ANALYZING_FILE_X_OF_Y, i, corpusFiles.size(), f.getName()));
|
||||||
}
|
}
|
||||||
|
@ -374,6 +396,21 @@ public class OneWordAnalysisTab {
|
||||||
progressLabel.setText("");
|
progressLabel.setText("");
|
||||||
});
|
});
|
||||||
|
|
||||||
|
task.setOnCancelled(e -> {
|
||||||
|
showAlert(Alert.AlertType.INFORMATION, Messages.NOTIFICATION_ANALYSIS_CANCLED);
|
||||||
|
ngramProgressBar.progressProperty().unbind();
|
||||||
|
ngramProgressBar.setProgress(0.0);
|
||||||
|
ngramProgressBar.setStyle(Settings.FX_ACCENT_OK);
|
||||||
|
progressLabel.textProperty().unbind();
|
||||||
|
progressLabel.setText("");
|
||||||
|
});
|
||||||
|
|
||||||
|
// When cancel button is pressed cancel analysis
|
||||||
|
cancel.setOnAction(e -> {
|
||||||
|
task.cancel();
|
||||||
|
logger.info("cancel button");
|
||||||
|
});
|
||||||
|
|
||||||
final Thread thread = new Thread(task, "task");
|
final Thread thread = new Thread(task, "task");
|
||||||
thread.setDaemon(true);
|
thread.setDaemon(true);
|
||||||
thread.start();
|
thread.start();
|
||||||
|
|
|
@ -9,7 +9,8 @@ import org.apache.commons.lang3.math.NumberUtils;
|
||||||
public class ValidationUtil {
|
public class ValidationUtil {
|
||||||
|
|
||||||
public static boolean isNumber(String value) {
|
public static boolean isNumber(String value) {
|
||||||
return NumberUtils.isCreatable(value);
|
//return NumberUtils.isCreatable(value);
|
||||||
|
return NumberUtils.isNumber(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -55,9 +55,35 @@ public class Export {
|
||||||
public static String SetToCSV(Set<Pair<String, Map<String, Long>>> set, File resultsPath, LinkedHashMap<String, String> headerInfoBlock) {
|
public static String SetToCSV(Set<Pair<String, Map<String, Long>>> set, File resultsPath, LinkedHashMap<String, String> headerInfoBlock) {
|
||||||
//Delimiter used in CSV file
|
//Delimiter used in CSV file
|
||||||
String NEW_LINE_SEPARATOR = "\n";
|
String NEW_LINE_SEPARATOR = "\n";
|
||||||
|
Object[] FILE_HEADER;
|
||||||
|
|
||||||
|
//Count frequencies
|
||||||
|
int num_frequencies = 0;
|
||||||
|
for (Pair<String, Map<String, Long>> p : set) {
|
||||||
|
Map<String, Long> map = p.getRight();
|
||||||
|
for (Map.Entry<String, Long> e : map.entrySet()) {
|
||||||
|
num_frequencies += e.getValue();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//CSV file header
|
//CSV file header
|
||||||
Object[] FILE_HEADER = {"word", "frequency", "percent"};
|
if (headerInfoBlock.containsKey("Analiza") && headerInfoBlock.get("Analiza").equals("Besede")) {
|
||||||
|
if (headerInfoBlock.containsKey("Izračunaj za:") && headerInfoBlock.get("Izračunaj za:").equals("različnica")) {
|
||||||
|
headerInfoBlock.put("Skupna vsota vseh različnic:", String.valueOf(num_frequencies));
|
||||||
|
FILE_HEADER = new Object[]{"Različnica", "Skupna absolutna pogostost", "Delež glede na vse različnice"};
|
||||||
|
} else if (headerInfoBlock.containsKey("Izračunaj za:") && headerInfoBlock.get("Izračunaj za:").equals("lema")) {
|
||||||
|
headerInfoBlock.put("Skupna vsota vseh lem:", String.valueOf(num_frequencies));
|
||||||
|
FILE_HEADER = new Object[]{"Lema", "Skupna absolutna pogostost", "Delež glede na vse leme"};
|
||||||
|
} else if (headerInfoBlock.containsKey("Izračunaj za:") && headerInfoBlock.get("Izračunaj za:").equals("oblikoskladenjska oznaka")) {
|
||||||
|
headerInfoBlock.put("Skupna vsota vseh oblikoskladenjskih oznak:", String.valueOf(num_frequencies));
|
||||||
|
FILE_HEADER = new Object[]{"Oblikoskladenjska oznaka", "Skupna absolutna pogostost", "Delež glede na vse oblikoskladenjske oznake"};
|
||||||
|
} else {
|
||||||
|
headerInfoBlock.put("Skupna vsota vseh različnic:", String.valueOf(num_frequencies));
|
||||||
|
FILE_HEADER = new Object[]{"Lema", "Skupna pogostost", "Delež glede na leme"};
|
||||||
|
}
|
||||||
|
} else
|
||||||
|
FILE_HEADER = new Object[]{"word", "frequency", "percent"};
|
||||||
|
|
||||||
String fileName = "";
|
String fileName = "";
|
||||||
|
|
||||||
|
|
|
@ -48,6 +48,9 @@
|
||||||
|
|
||||||
<Hyperlink fx:id="helpH" alignment="TOP_LEFT" layoutX="710.0" layoutY="16.0" text="Pomoč" />
|
<Hyperlink fx:id="helpH" alignment="TOP_LEFT" layoutX="710.0" layoutY="16.0" text="Pomoč" />
|
||||||
|
|
||||||
|
<Button fx:id="cancel" layoutX="540.0" layoutY="482.0" mnemonicParsing="false"
|
||||||
|
prefHeight="25.0" prefWidth="250.0" text="Prekini"/>
|
||||||
|
|
||||||
<ProgressBar fx:id="ngramProgressBar" layoutX="10.0" layoutY="517.0" prefHeight="16.0" prefWidth="780.0" progress="0.0" />
|
<ProgressBar fx:id="ngramProgressBar" layoutX="10.0" layoutY="517.0" prefHeight="16.0" prefWidth="780.0" progress="0.0" />
|
||||||
<Label fx:id="progressLabel" layoutX="10.0" layoutY="541.0" prefHeight="25.0" prefWidth="780.0" />
|
<Label fx:id="progressLabel" layoutX="10.0" layoutY="541.0" prefHeight="25.0" prefWidth="780.0" />
|
||||||
|
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
</items>
|
</items>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
|
||||||
|
<Label layoutX="300.0" layoutY="20.0" prefHeight="25.0" text="Izpiši tudi:" />
|
||||||
|
<CheckComboBox fx:id="alsoVisualizeCCB" layoutX="400.0" layoutY="20.0" prefHeight="25.0" prefWidth="180.0"/>
|
||||||
<!-- MSD and Taxonomy separated -->
|
<!-- MSD and Taxonomy separated -->
|
||||||
|
|
||||||
<Label layoutX="10.0" layoutY="80.0" prefHeight="25.0" text="Omejitev podatkov" />
|
<Label layoutX="10.0" layoutY="80.0" prefHeight="25.0" text="Omejitev podatkov" />
|
||||||
|
@ -50,6 +52,9 @@
|
||||||
|
|
||||||
<Hyperlink fx:id="helpH" alignment="TOP_LEFT" layoutX="710.0" layoutY="16.0" text="Pomoč" />
|
<Hyperlink fx:id="helpH" alignment="TOP_LEFT" layoutX="710.0" layoutY="16.0" text="Pomoč" />
|
||||||
|
|
||||||
|
<Button fx:id="cancel" layoutX="540.0" layoutY="482.0" mnemonicParsing="false"
|
||||||
|
prefHeight="25.0" prefWidth="250.0" text="Prekini"/>
|
||||||
|
|
||||||
<ProgressBar fx:id="ngramProgressBar" layoutX="10.0" layoutY="517.0" prefHeight="16.0" prefWidth="780.0" progress="0.0"/>
|
<ProgressBar fx:id="ngramProgressBar" layoutX="10.0" layoutY="517.0" prefHeight="16.0" prefWidth="780.0" progress="0.0"/>
|
||||||
<Label fx:id="progressLabel" layoutX="10.0" layoutY="541.0" prefHeight="25.0" prefWidth="780.0"/>
|
<Label fx:id="progressLabel" layoutX="10.0" layoutY="541.0" prefHeight="25.0" prefWidth="780.0"/>
|
||||||
|
|
||||||
|
|
|
@ -99,6 +99,10 @@
|
||||||
<Label fx:id="selectedFiltersLabel" alignment="TOP_LEFT" layoutX="510.0" layoutY="45.0" prefHeight="540.0" prefWidth="275.0"
|
<Label fx:id="selectedFiltersLabel" alignment="TOP_LEFT" layoutX="510.0" layoutY="45.0" prefHeight="540.0" prefWidth="275.0"
|
||||||
text=" " wrapText="true"/>
|
text=" " wrapText="true"/>
|
||||||
<Hyperlink fx:id="helpH" alignment="TOP_LEFT" layoutX="710.0" layoutY="16.0" text="Pomoč" />
|
<Hyperlink fx:id="helpH" alignment="TOP_LEFT" layoutX="710.0" layoutY="16.0" text="Pomoč" />
|
||||||
|
|
||||||
|
<Button fx:id="cancel" layoutX="540.0" layoutY="482.0" mnemonicParsing="false"
|
||||||
|
prefHeight="25.0" prefWidth="250.0" text="Prekini"/>
|
||||||
|
|
||||||
<ProgressBar fx:id="ngramProgressBar" layoutX="10.0" layoutY="517.0" prefHeight="16.0" prefWidth="780.0" progress="0.0"/>
|
<ProgressBar fx:id="ngramProgressBar" layoutX="10.0" layoutY="517.0" prefHeight="16.0" prefWidth="780.0" progress="0.0"/>
|
||||||
<Label fx:id="progressLabel" layoutX="10.0" layoutY="541.0" prefHeight="25.0" prefWidth="780.0"/>
|
<Label fx:id="progressLabel" layoutX="10.0" layoutY="541.0" prefHeight="25.0" prefWidth="780.0"/>
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user