Giter Site home page Giter Site logo

proycon / tscan Goto Github PK

View Code? Open in Web Editor NEW
18.0 5.0 6.0 37.97 MB

T-scan: an analysis tool for dutch texts to assess the complexity of the text, based on original work by Rogier Kraf

License: GNU Affero General Public License v3.0

Shell 3.27% C++ 80.86% XSLT 4.08% Python 8.57% Makefile 0.43% M4 1.58% Dockerfile 1.20%
dutch-language feature-extraction nlp text-difficulty

tscan's Introduction

Actions Status Actions Status DOI

T-Scan

tscan 0.9 (c) TiCC/ 1998 - 2023

Tilburg centre for Cognition and Communication, Tilburg University.
UiL-OTS, Utrecht University
Language Machines, Centre for Language Studies, Nijmegen

T-Scan is distributed under the GNU Affero Public Licence (see the file COPYING).

T-Scan is an analysis tool for dutch texts to assess the complexity of the text, and is based on original work by Rogier Kraf (Utrecht University) (see: Kraf et al., 2009). The code has been reimplemented and extended by Ko van der Sloot (Tilburg University), Martijn van der Klis (Utrecht University) and is currently maintained and continued by Luka van der Plas and Sheean Spoel (both Utrecht University).

Web application / Webservice

This repository contains the T-Scan source code, allowing you to run it yourself on your own system. In addition, T-Scan is available as a web application and webservice through https://tscan.hum.uu.nl/tscan/. You can create an account or contact us if your institution is not (yet) recognized.

Documentation

Extensive documentation (in Dutch) can be found in docs/tscanhandleiding.pdf.

Installation

T-Scan heavily depends upon other software, such as Frog, Wopr and Alpino.

Installation is not trivial, to be able to successfully build T-Scan from the tarball, you need the following packages:

We strongly recommend to use Docker to install T-scan. Be aware that T-scan and dependencies are memory intensive, we recommend at least 16GB RAM for proper operation. If WOPR is used (which is enabled by default!) more RAM is required: 32 GB is recommended.

Docker

This version of T-Scan can run directly from Docker:

$ docker-compose up

Default address: http://localhost:8830

To speed up rebuilds the Dockerfile makes extensive use of caching. The following can be found in docker/data:

  • build-cache: this contains the output of the compiled C++ code, helps speed up a rebuild where the code didn't change
  • compound-dependencies: dependencies for the compound splitter, nearly 820 MB which you really don't want to have to download again on every rebuild
  • compound-dependencies/dist: the Python package for the compound splitter
  • packages: the prebuilt dependencies (Frog, Ucto, etc)

Only the build-cache has automatic invalidation, if you want to update your dependencies you need to delete (parts) of this cache. The cache will be automatically recreated during startup.

Manual Build

If you do not want to use (the provided) dockerfile, first make sure you have all necessary dependencies and then compile/install as follows:

$ bash bootstrap.sh
$ ./configure --prefix=/path/to/installation/
$ make
$ sudo make install
$ cd webservice
$ sudo python3 setup.py install

Usage

Before you can use T-Scan you need to start the background servers (you may need to edit the scripts to set ports and paths):

$ cd tscan/webservice
$ ./startalpino.sh
$ ./startfrog.sh
$ ./startwopr20.sh    (will start Wopr to calculate forwards probabilities)
$ ./startwopr02.sh    (will start Wopr to calculate backwards probabilities)

Then either run T-Scan from the command-line, which will produce a FoLiA XML file,

$ cd tscan
$ cp tscan.cfg.example tscan.cfg
(edit tscan.cfg if necessary)
$ tscan --config=tscan.cfg input.txt

... or use the webapplication/webservice, which you can start with:

$ cd tscan/webservice/tscanservice
$ clamservice tscanservice.tscan   #this starts the CLAM service for T-Scan

And then navigate to the host and port specified.

Tests

Tests can be run using make check. This requires running the Frog services:

cd webservice
./startfrog.sh &

Pre-parsed Alpino files are included. It is also possible to remove these and update them for a newer version of Alpino.

./startalpino.sh &
cd ../tests/
rm alpino_lookup.data
rm *.alpino
./testall
./merge_alpino_output.py

Note: the output can change when a different version of Alpino or Frog is used.

Data

Word prevalence values (in data/prevalence_nl.data and data/prevalence_be.data) courtesy of Keuleers et al., Center for Reading Research, Ghent University.

Certain parts of T-Scan use data from Referentiebestand Nederlands, which we can not distribute due to restrictive licensing issues, so this functionality will not be available.

Certain other data is too large for GitHub, but will be downloaded for you automatically by the ./downloaddata.sh script.

References

  • Kraf, R. & Pander Maat, H. (2009). Leesbaarheidsonderzoek: oude problemen en nieuwe kansen. Tijdschrift voor Taalbeheersing 31(2), 97-123.
  • Pander Maat, H. & Kraf, R. & van den Bosch, A. & Dekker, N. & van Gompel, M. & Kleijn, S. & Sanders, T. & van der Sloot, K. (2014). T-Scan: a new tool for analyzing Dutch text. Computational Linguistics in the Netherlands Journal 4, 53-74.
  • Keuleers, E. & Stevens, M. & Mandera, P. & Brysbaert, M. (2015). Word knowledge in the crowd: Measuring vocabulary size and word prevalence in a massive online experiment. The Quarterly Journal of Experimental Psychology 68(8), 1665-1692.

tscan's People

Contributors

kosloot avatar mhkuu avatar oktaal avatar proycon avatar lukavdplas avatar duchadian avatar

Stargazers

Jarrian Gojar avatar Evert Harmeling avatar  avatar Takumi Ito avatar Bram Vanroy avatar Nafal Ossandón Hostens avatar Will Skywalker avatar  avatar Wietse de Vries avatar Tjeerd Hans avatar Chun Fei Lung avatar Albert Tavares de Almeida avatar  avatar Marco avatar Andreas van Cranenburgh avatar  avatar  avatar

Watchers

 avatar Robert Loeber avatar  avatar  avatar  avatar

tscan's Issues

XML error: class attribute is required for feat

While parsing the bible (each sentence on a new line and wc bijbel.txt =
33779 761332 4220718), I get the following error:
working dir /tmp/tscan-20137/
opened file input/bijbel.txt
FoLiaParsing failed:
XML error: class attribute is required for feat
Segmentation fault

And all the output files are empty.

I've tried turning the parsers off, but that does not change anything.

config.txt
errorlog.txt

Wopr not functioning

Wopr returns ERROR: exception caught: No Document ID specified. T-Scan shows No usable FoLia date retrieved from Wopr. Got ''.

Not sure what happens. Something wrong in the input to Wopr?

Inlezen OOXML/DOCX (Word) en ODF/ODT (OpenOffice)

Inlezen mogelijk maken van DOCX- en ODT-bestanden in T-Scan (CLAM-server aanpassen; Word-extensie toevoegen en verfijnen)

  • DOCX: Microsoft Word (Office Open XML, OOXML, ECMA-376, ISO/IEC 29500)
  • ODT: LibreOffice, Apache OpenOffice (OpenDocument Format, ODF, ISO/IEC 26300)

Vernieuwde T-Scan handleiding beschikbaar maken

Hij staat nu hard-coded gelinkt naar de master-branch van proycon. Het handigst is om deze plek in de repository docs/tscanhandleiding.pdf wel aan te houden, maar de code zo aan te passen dat hij die direct uit de huidige repository haalt. Bijvoorbeeld door het bestand direct downloadbaar te maken vanaf de server.

[LINT] Verbetering tekst en documentatie

Er komen allerlei lokale verbeterpunten in toelichtingsteksten en visualisaties aan het licht. Bijzondere aandacht verdienen de taalkundige vaktermen. Het aantal daarvan zou kleiner moeten worden, en zij zouden moeten worden toegelicht en geïllustreerd.

Teksten opschonen

Het automatisch uitfilteren van zinnen van één karakter, en van aaneengeschreven cijfers, zodat opsommingsletters en -cijfers met een punt erachter geen zin meer worden.

Laat het merendeel van de kopjes automatisch overslaan. Zet ‘###’ voor een zin als:

  • Hij vooraf wordt gegaan door twee harde returns
  • En zonder punt of puntkomma eindigt in een harde return

[LINT] Verdere verfijning van resultaatweergave

  1. Voortgang zien bij het scannen van een project (deze informatie is achter de schermen al aanwezig)
  2. Het kunnen herstarten van een scan bij problemen
  3. Verder wordt gevraagd om de optie om de output per tekst op te vragen, zodat die makkelijker gedeeld kan worden met de schrijvers van specifieke teksten."

Verplaatsing AL_max

Er is iets mis gegaan met het verplaatsten van AL_max in de zinsoutput (ca3a62e), in ieder geval.

  1. Vooraan in de zinsoutput staat nu een variabele ‘AL_max_A’; de waarde daarvan staat ook bij Bijw_bep_d.
  2. Verderop in de data staat nog wel een AL_max, maar die geeft niet het maximum van de AL’s die ernaast staan. Eerder lijken ze een gemiddelde te geven. De kolom AL_gem is daarentegen leeg.

Kortom, hier zijn twee kolommen naar rechts geschoven waardoor Bijw_bep_d is overschreven. Verder geeft de nieuwe Utrechtse T-Scan andere waarden voor AL_max dan de Nijmeegse. Ook in de doc-output lijkt dus iets niet te kloppen. Dit heb ik bij verschillende teksten gevonden.

Lemmatization: double counting of totals

Er is nu een optie ‘lemmafrequentie voor Subtlex’. We hebben gemaild over de woordtotalen waarop de standaardisatie plaatsvindt. Die waren voor de lemmafreqs hoger, omdat daarvoor het totaal van de lemmafreqs werd genomen. Voor zowel woord- als lemmafrequentie moet het totaal van de woordfreqs worden genomen.

[LINT] Resulaten opvragen als DOCX/ODT/PDF

Mogelijkheid om de resultaten op te vragen als:

  • DOCX: Microsoft Word (Office Open XML, OOXML, ECMA-376, ISO/IEC 29500)
  • ODT: LibreOffice, Apache OpenOffice (OpenDocument Format, ODF, ISO/IEC 26300)
  • PDF: Adobe Reader (Portable Document Format, ISO 32000)

Verder wordt gevraagd om de optie om de output per tekst op te vragen, zodat die makkelijker gedeeld kan worden met de schrijvers van specifieke teksten.

Keuzes bij het opvragen:

  • Welke documenten?
  • Welke resultaten?
    • Tekstmoeilijkheden
    • Genrevergelijking
    • Tekstkenmerken
    • Geannoteerde tekst
      • Onbekende woorden, concreet en abstract, verwijzingen naar mensen…

Opzetvoorstel: genereer een ODT en gebruik een library om dit om te zetten in PDF of DOCX. Zo kunnen de drie verschillende bestandsformaten worden aangeboden.

Huidige schermen

Tekstmoeilijkheid

image

Genrevergelijking

image

Tekstkenmerken

image

Bekijk uw tekst

image

certain restricted datafiles cannot be read, causing tscan to error

(lamachine-lm-dev) duchs@duchsserver:Documents$ tscan testfile
TScan 0.9.1
working dir /tmp/tscan-1252/
couldn't open file: adjs_semtype.data

after commenting out that file in the config

(lamachine-lm-dev) duchs@duchsserver:Documents$ tscan testfile
TScan 0.9.1
working dir /tmp/tscan-1260/
couldn't open file: nouns_semtype.data

commenting out adj_semtypes and noun_semtypes in the config makes tscan start

(lamachine-lm-dev) duchs@duchsserver:Documents$ tscan testfile
TScan 0.9.1
working dir /tmp/tscan-1264/
read data/freqlist_staphorsius_CLIB_words.freq (192912 entries)
read data/freqlist_staphorsius_CLIB_words.freq (192912 entries)
read data/freqlist_staphorsius_CLIB_lemma.freq (195779 entries)
opened file testfile

Strangely enough, verb_semtypes doesn't need to be commented out for tscan to start, even though it is empty like the other two files. Other empty files do not seem to cause errors.

reading datafiles might randomly crash...

nouns_semtype.data may have entries with 3 or 6 columns:

winkelconcept	nondynamic	1	concept	winkel	2
woonconcept	nondynamic	1	concept	woon	2
anticonceptie	nondynamic	0			
aluminiumconcern	institut	1	concern	aluminium	2
autoconcern	institut	1	concern	auto	2

But the code in filNN happily assumes all are 6 columns:

    // Classify the noun, set the compound values and add the noun to the map
    noun n;
    n.type = SEM::classifyNoun(parts[1]);
    n.is_compound = parts[2] == "1";
    if (n.is_compound) {
      n.head = parts[3];
      n.satellite_clean = parts[4];
      n.compound_parts = atoi(parts[5].c_str());
    }
    m[parts[0]] = n;

This must lead to problems (and does so on my PC)
a few line earlier, the 3 column case is explicitly allowed!

    if (i != 3 && i != 6) {
      cerr << "skip line: " << line << " (expected 3 or 6 values, got " << i << ")" << endl;
      continue;
    }

failed to connect to frog

failed to open Frog connection: localhost:7001
Reason: invalid socket : ClientSocket: Connection on localhost:5 failed (Connection refused)

I get this error repeatedly with all the dependencies running on correct ports. Why would the program attempt to connect to port 5?

tscan regression bug with latest libfolia/frog?

T-scan won't run anymore after the latest update, I suspect a compatibility problem with the latest libfolia? I get:

frog-:Listening on port 7001
frog-:New connection...
Word(class='WORD',generate_id='tscan.p.1.s.1',set='tokconfig-default') creation failed: Set 'tokconfig-default' is used but has no declaration for token-annotation

[LINT] Verbeterde projectinvoer

Er is nu nog geen overzicht van de projecten van een gebruiker. Ook is er nog geen mogelijkheid om projecten aan te passen, hernoemen of te verwijderen.

[LINT] Vernieuwde diagramweergave

Maak staafdiagrammen bij ‘tekstkenmerken’ leesbaarder door:

  • De regel met de ‘normgenres’ verder omhoog te plaatsen, zodat hij niet meer door de eerste balk heen loopt
  • De twee genre-aanduidingen verder naar buiten te plaatsen, zodat ze elkaar niet meer overlappen.

Het helpt ook om deze aanduidingen korter te maken:

Bekende woorden

  • Complex: wetenschappelijke artikelen (4,08) > Wetenschap (4,08)
  • Eenvoudig: reisblogs (4,87) > Reisblogs (4,87)

Concrete woorden

  • Abstract: wetenschappelijke artikelen (0,26) > Wetenschap (0,26)
  • Concreet: reisblogs (0,70) > Reisblogs (0,70)

Mensen

  • Onpersoonlijk: verkiezingsprogramma (54) > Partijprogramma’s (54)
  • Persoonlijk: roddelberichten (166) > Roddelberichten (166)

Persoonlijke voornaamwoorden

  • Onpersoonlijk: verkiezingsprogramma (27) > Partijprogramma’s (27)
  • Persoonlijk: roddelberichten (75) > Roddelberichten (75)

Zinslengte

  • Makkelijk: vmbo-boeken (10,4) > Vmbo-boeken (10,4)
  • Moeilijk: wetenschappelijke artikelen (23,8) > Wetenschap (23,8)

Bijzinnen

  • Makkelijk: vmbo-boeken (0,33) > Vmbo-boeken (0,33)
  • Moeilijk: wetenschappelijke artikelen (1,19) > Wetenschap (1,19)

Lengte van deelzinnen

  • Makkelijk: vmbo-boeken (8,3) > Vmbo-boeken (8,3)
  • Moeilijk: wetenschappelijke artikelen (13,2) > Wetenschap (13,2)

Bijvoeglijke bepalingen

  • Makkelijk: roddelberichten (0,88) > Roddelberichten (0,88)
  • Moeilijk: wetenschappelijke artikelen (2,11) > Wetenschap (2,11)

Opsommingen

  • Makkelijk: roddelberichten (0,17) > Roddelberichten (0,17)
  • Moeilijk: wetenschappelijke artikelen (0,56) > Wetenschap (0,56)

Woordherhaling

  • Moeilijk: verkiezingsprogramma’s (7,8%) > Partijprogramma’s (7,8%)
  • Makkelijk: roddelberichten (13.0%) > Roddelberichten (13.0%)
  • Zorg dat in het landschap (genrevergelijking) ook de aanduiding ‘roddelberichten’ onder zijn stipje komt te staan. Dat kan waarschijnlijk door dat woord niet boven maar onder zijn stipje te zetten.
  • Bij de roll-overs over balkjes verschijnen de waarden met veel cijfers achter de komma. Afronden op twee decimalen.
  • Geef LiNT-scores weer in een staaf van 1-100, met vier kleurenintervallen per tekstniveau

"De informatie over het moeilijkheidsniveau kan genuanceerder worden gevisualiseerd door een balk aan te bieden met vier gekleurde intervallen die staan voor de leesniveaus. Daarin kan de tekst worden geplaatst, zodat duidelijker wordt of een tekst laag of hoog scoort in een bepaald niveau-interval."

[LINT] Afschermen projecten/teksten voor andere gebruikers

Zie ook oktaal/tscan-issues#5. Achter de schermen zullen er in ieder geval gebruikers moeten kunnen worden aangemaakt. Deze moet een individuele lijst van projecten (en onderliggende teksten) hebben. Gebruikers zullen ook een geldig emailadres moeten hebben. Dat adres zal dan worden gebruikt voor het mailen van de projectvoortgang.

Aggregeren zinnen Alpino_status = 0

Een alpino_status van 1 houdt nu niet langer het aggregeren van gegevens tegen na: 23ddc29

Als er echter zinnen voorkomen die Alpino_status=1 krijgen, worden boven zinsniveau syntactische maten niet meer gegeven.

De software zou bij het aggregeren van gegevens alleen zinnen moeten meenemen waarvoor geldt Alpino=0.

Tscan not working on WSL

Hi,

Updated LaMachine with Tscan and Alpino modules. However, I'm unable to use tscan or Alpino (startup scripts for webservice fail for frog and wopr).

Other log files are empty, except for frog-tscan.txt

frog 0.19.1 (c) CLTS, ILK 1998 - 2019
CLST - Centre for Language and Speech Technology,Radboud University
ILK - Induction of Linguistic Knowledge Research Group,Tilburg University
based on [ucto 0.20, libfolia 2.4, timbl 6.4.14, ticcutils 0.23, mbt 3.6]
removing old debug files using: 'find frog.*.debug -mtime +1 -exec rm {} ;'
frog-:config read from: /home/u0116957/lamachineJ/share/frog/nld/frog.cfg
frog-:configuration version = 0.12
frog-:Input file not found: c/home/u0116957/lamachineJ/share/frog/nld/frog.cfg
frog-:fatal error: init failed

Error when starting tscan:
(lamachineJ) u0116957@GHUM-L-AE181006:~$ tscan --config=tscan.cfg input.txt
TScan 0.9.5
working dir /tmp/tscan-15583/
unable to read configuration from tscan.cfg
invalid configuration

(even though tscan.cfg exists)
Thanks!

[LINT] Verbetering invoeren teksten

Bouwt voort op oktaal/tscan-issues#34

Een layout met een knoppenbalk/toolbar:

  • Naam van het project
  • Verwijderen/kopiëren project
  • Keuze stopwoordenlijst (of geen) oktaal/tscan-issues#13
  • Scannen project (confirmatiescherm met emailadres oktaal/tscan-issues#5)
  • Hulpscherm (opvragen handleiding, instructievideo)

Daaronder twee kolommen:

Links:

  • Bestanden
  • Nieuwe bestanden toevoegen
  • Leeg bestand toevoegen (om zelf tekst te kunnen invoeren)

Rechts:

  • Weergave van het links gekozen tekst
  • Bij het uploaden van een bestand, wordt de opgeschoonde tekst oktaal/tscan-issues#32 getoond

[LINT] Verbeteringen stoplijst

Maak het mogelijk om stoplijsten te beheren.

  • Op applicatieniveau standaard stoplijst aanbieden
  • Deze standaard stoplijst moet eenvoudig aangepast kunnen worden
  • Lijst, inclusief standaard lijst, kan worden gekopieerd
  • Aan een bestaande lijst (begin bij een nieuwe lijst met een lege lijst) kunnen nieuwe woorden worden geüpload (in csv- of txt-formaat) of toegevoegd

"Ik vind de titel stoplijst uploaden niet erg duidelijk. Dacht eerst dat ik hier ook een tekst in zou kunnen voeren, maar dan in csv-format, wat me al een beetje vreemd voorkwam."

"In plaats van ‘stoplijst’ is ‘woordenstoplijst’ misschien al iets inzichtelijker, of iets met ‘uitzonderingen’."

"De woorden ‘kiesbestandgeenbestand’ in het vakje voor de stoplijst wekken verwarring, ook omdat ze blijven staan na het invoeren van een stoplijst."

"Een stoplist werkt ook als hij txt-formaat heeft, niet alleen als hij csv-formaat heeft."

"De stoplijstwoorden worden wel verwerkt in de woordmaten, maar niet in het markeren van woorden in Bekijk uw tekst."

"Enkele verwarrende mededelingen in het huidige invoertraject moeten verbeterd worden.
- Wanneer je een tekst plakt, blijft de mededeling u heeft nog geen tekst geplakt gewoon staan.
- De titel Stoplijst uploaden moet verduidelijkt worden.
- De woorden ‘kiesbestandgeenbestand’ in het vakje voor de stoplijst wekken verwarring, ook omdat ze blijven staan na het invoeren van een stoplijst."

"Twee ontwerpproblemen rondom de stoplijst moeten worden aangepakt.
- Duidelijk moet worden dat een stoplist meerdere formaten kan krijgen: naast csv-formaat is ook een txt-formaat mogelijk.
- De stoplijstwoorden worden wel verwerkt in de woordmaten, maar nog niet in het markeren van woorden in Bekijk uw tekst."

"Er moet een algemene stoplijst komen van gangbare woorden die ontbreken in de SubtLex-frequentielijst. Die woorden blijven dan structureel buiten beschouwing. Ook zo worden valse alarmen voorkomen, zowel in de frequentiescores als in Bekijk uw tekst."

[LINT] woordfrequenties op lemma-niveau

De woordfrequenties moeten op lemmaniveau worden aangeboden.

Het markeren van infrequente woorden bij Bekijk uw tekst moet gaan gebeuren op basis van gecorrigeerde frequenties (lemmafrequenties, niet wrd_freq_zn_log, maar wrd_freq_zn_log_corr). Zo worden valse alarmen voorkomen.

Op dit moment ontbreekt er nog lemma-variant van een kenmerk wrd_freq_log_zn_corr(lem_freq_log_zn_corr dus).

[LINT] Basiskennis grammatica opvraagbaar

Het moet mogelijk zijn om een naslagwerk op te vragen in de applicatie met basiskennis over de grammatica. Het kan handig zijn om hier vanuit meerdere plekken naartoe te kunnen linken, bijvoorbeeld vanuit een toelichtingstekst. Gebruik een venster binnen de applicatie zelf, zodat de gebruiker niet uit het werk wordt gehaald.

LiNT scores are swapped?

[O]nlangs zag ik een onwaarschijnlijke score. Een moeilijke tekst (uitspraak1) scoorde 33 als LiNTniveau2. In LiNT scoorde diezelfde tekst 66. Gaat het aftrekken van 100 wel goed? Zie bijlage 2. Andere vraag: De discretiseringen (1-2-3-4) heten nu ‘LiNTscore’, de schaalwaarden (1-100) heten nu ‘LiNTniveau’. Dat moet precies andersom zijn.

Update info text

It should become:

T-Scan is an analysis tool for Dutch text, mainly focusing on text complexity. It has been initially conceptualized by Rogier Kraf and Henk Pander Maat. Rogier Kraf also programmed the first versions. From 2012 on, Henk Pander Maat supervised the development of the extended versions of the tool. These versions were programmed by Maarten van Gompel, Ko van der Sloot, Martijn van der Klis and Sheean Spoel. Please consult the Handleiding when using T-Scan.

[TSCAN] nieuwe kenmerken op basis van lijst formele woorden

Bouwt voort op oktaal/tscan-issues#11:

Tekstkenmerken voor formele woorden

Door lemma’s van tekstwoorden te matchen met de lijst formele_woorden.xlsx, worden de volgende dichtheden berekend (dichtheid = aantal voorkomens per 1000 woorden).

Die lijst bestaat uit:

  • kolom A: lemma
  • kolom B: woordsoort

Het matchen gebeurt alleen o.b.v. lemma (hoofdlemma bij een samenstelling).

Form_d Dichtheid van alle formele woorden uit de lijst bij elkaar
Form_bvnw_d Dichtheid van de formele woorden die in kolom B van de lijst ‘adjectief’ hebben
Form_bw_d Dichtheid van de formele woorden die in kolom B van de lijst ‘bijwoord’ hebben
Form_vgw_d Dichtheid van de formele woorden die in kolom B van de lijst ‘voegwoord’  hebben
Form_vnw_d Dichtheid van de formele woorden die in kolom B van de lijst ‘voornaamwoord’ hebben
Form_vz_d Dichtheid van de formele woorden die in kolom B van de lijst ‘voorzetsel’ hebben
Form_vzg_d Dichtheid van de formele woorden die in kolom B van de lijst ‘voorzetselgroep’ hebben
Form_ww_d Dichtheid van de formele woorden die in kolom B van de lijst ‘werkwoord’ hebben
Form_znw_d Dichtheid van de formele woorden die in kolom B van de lijst ‘zelfstandig naamwoord’ hebben; voor samenstellingen wordt het basiswoord gecheckt in de lijst.

@jgonggrijp:

OK, dus als ik dat even vrij vertaal naar JavaScript en Underscore dan staat hier, als ik het goed begrijp:

const perWoordsoort = _.countBy(woorden, woord =&gt; 
    _.findKey(formele_woorden, fw =&gt; fw === lemma(woord))
);
delete perWoordsoort['undefined']; // telling van alle niet-formele woorden
const Form_bvnw_d = perWoordsoort.adjectief / woorden.length * 1000;
// etcetera
const Form_d = sum(perWoordsoort) / woorden.length * 1000;

Waarbij ik voor het gemak even aanneem dat sum en lemma al ergens gedefinieerd zijn. tscan is als ik het goed heb onthouden in C++, dus dan zou dit redelijk rechtstreeks om te zetten moeten zijn naar STL, als dat excel-bestand van tevoren naar een geschikte vorm wordt geconverteerd. Dan moet het naar ik aanneem nog toegevoegd worden aan een API en moeten er nog tests geschreven worden.

[LINT] Uitrol

Moet bijgewerkt worden. Nieuwe voorkant: voor de achterkant ontbreekt volgens mij een test-acceptatie-straat.

Publish formal stable releases for tscan

I'd like to propose to regularly publish stable releases through github for tscan. This is not just good practise in general, but it makes deployment easier as well. It should be as easy as filling https://github.com/proycon/tscan/releases/new: use something like v0.3 for release tag/title and bump the version in configure.ac after release.

Right now I encountered a LaMachine failure because we rely on the master branch for tscan, having no releases; currently the master branch relies on libfolia 1.6 but this is bleeding-edge development and not released yet, so the build fails on the stable LaMachine now. Recall that LaMachine has two flavours, it grabs either the latest releases or the git master branch, the installation in Nijmegen is following the former for stability and ease of maintenance.

[LINT] Startscherm

"In het startscherm is meer informatie nodig over de doelen waarvoor je de tool kunt gebruiken en over de moeilijkheidsniveaus; bij dat laatste is ook een vertaling naar Vlaamse onderwijsniveaus aan de orde." oktaal/tscan-issues#9

Bijvoorbeeld:

  • Voor schrijven: schrijvers die aarzelen om collega’s of coaches te raadplegen, gebruiken zelf de tool als feedback;
  • Voor coaching: coaches geven schrijvers feedback op teksten met behulp van de tool;
  • Voor redigeren: een redactieteam gebruikt de tool om te zien welke teksten aanpassingen nodig hebben;
  • Voor tekstkwaliteitsbeleid: de tool kan helpen bij het monitoren van de kwaliteit van grotere verzamelingen teksten.

De navigatie in het startscherm wordt op verschillende manieren verbeterd.

  • De links naar publicaties in het stukje onder de link Over LiNT moeten robuuster gemaakt worden, evenals de link naar de T-Scanhandleiding onder Contact.
  • In dit scherm en onder links in dit scherm moet niet meer worden verwezen latere output-schermen, die de gebruiker wellicht nog niet gezien heeft.
  • Als je hebt geklikt op meer informatie, moet je makkelijker kunnen terugkeren.

Stage projects via REST API

De interface van tscan maakt het mogelijk om een gescand project opnieuw op 'staging' te zetten maar deze optie is er (volgens de documentatie) niet voor de REST interface.

Om een project te bewerken gooit LiNT nu het oude tscan project weg en maakt een nieuwe aan (die dan 'staging' is) met dezelfde teksten. Het zou mooi zijn als dit wel direct kon.

Inconsistent restrictive permissions in tscan-bigdata.tar.bz2 causes issues

After unpacking, I get:

-rw-r--r-- 1 proycon users    347547 Aug 27  2015 dcoi_staphformat.freq
-rw-r--r-- 1 proycon users  70872952 Aug 27  2015 freqlist_sonarnews_lemma.freq
-rw-r--r-- 1 proycon users    664317 Aug 27  2015 freqlist_sonarnews_words20000.freq
-rw-r--r-- 1 proycon users  76779425 Aug 27  2015 freqlist_sonarnews_words.freq
-rw-r--r-- 1 proycon users    383296 Aug 27  2015 freqlist_staphorsius_CLIB_lemma.freq
-rw-r--r-- 1 proycon users    442777 Aug 27  2015 freqlist_staphorsius_CLIB_words.freq
-rw-r--r-- 1 proycon users  33462696 Aug 27  2015 lsa_newspaper_lemma_model_700_filtered.lsi
-rw-r--r-- 1 proycon users  25190356 Aug 27  2015 newspaper_contentlemma_dictionary_filtered.dict
-rw------- 1 proycon users    880504 Sep 11  2015 SoNaR500.withoutnames_wordfreqlist20000.freq
-rw------- 1 proycon users    874051 Sep 11  2015 SoNaR500.wordfreqlist20000.freq
-rw-r--r-- 1 proycon users 138645975 Aug 27  2015 SoNaR500.wordfreqlist_lemma.freq
-rw-r--r-- 1 proycon users 191996591 Aug 27  2015 SoNaR500.wordfreqlist_words.freq
-rw-r--r-- 1 proycon users 325652400 Oct 17  2016 sonar_newspapercorp_tokenized.3.txt.l0r2_-a4+D.ibase
-rw-r--r-- 1 proycon users 330698324 Oct 17  2016 sonar_newspapercorp_tokenized.3.txt.l2r0_-a4+D.ibase
-rw-r--r-- 1 proycon users   9279407 Oct 24  2016 sonar_newspapercorp_tokenized.3.txt.lex
-rw------- 1 proycon users    830313 Sep 11  2015 subtlex_words20000.freq
-rw-r--r-- 1 proycon users  14388054 Aug 27  2015 subtlex_words.freq

Three files are packed with overly restrictive permissions, can you repack them world readable like the others and republish it on your webserver? It is currently causing issues in user installations (see last posts in proycon/LaMachine#153)

[LINT] Gebruikersbeheer

Toevoegen van nieuwe gebruikers. Instellen van naam, email en wachtwoord. Wijzigen bestaand wachtwoord. Minimaal een eenvoudig rechtensysteem: beheerders en gebruikers.

startup scripts for webservices fail in some instances

As the title says, the startup scripts fail in some instances (mostly when the scripts are run via ssh it seems).

I'll take .startfrog.sh as an example.

The cause of the failure seems to be re-interpretation of the PORT variable from 7001 to 7 1, to '7', '', '1' when called with ${PORT}. This seems to be an issue central to bash.

This results in the last line ( frog -X --id=${ID} -c ${CONFIG} --skip=mp -S${PORT} 2> $LOGFILE ) interpreting 7 as the port, with '' and '1' being seen as files for frog to parse. The other scripts do not fail as spectacularly, yet raise errors because they all try to occupy the same port (7).

The workaround seems to be to quote the variables in question (i.e. change ${PORT} to "${PORT}").

Retrieve data from share/

In T-Scan, the data is currently fetched directly from the data/ folder from the git repository. It would be better to retrieve this from the location where the data are installed, i.e. the share/directory in e.g. \usr\local.

This also requires changes to the wrapper script.

Overslaan tekst met ###

Op dit moment accepteert T-Scan via bestandenlijsten geen teksten die beginnen met overgeslagen tekst. Het probleem is dus erger geworden.

Paragraphs not recognised

The T-scan works great again! Only one thing is not clear to me yet.

I have a number of reviews that I would like to regard as a paragraph. Every review is already in line with an enter in between so I hoped that they would be considered separate sections. However, he turns the entire document into one paragraph when I view the output.

Do you see what I am doing wrong? I want the average number of letters per word, words per sentence, etc. per observation (i.e. review) (remaining 400 features).

That does not work, even if I set split per line to yes or if I remove the blank lines. I also tried the bare text as input, but then unfortunately it also failed to get it per paragraph.

Thanks for your help!
groupaveragefinal3.txt

output

Infin_compl_per_zin → infin_compl_bep_per_zin

Huidige definitie

Het aantal infinitiefcomplementen in de zin, dat wil zeggen het aantal knopen met de categorieën ti (te-infinitief) of oti (om te-infinitief).

Probleem

  1. Bijzinnen met om te worden dubbel geteld. Dit komt omdat zowel de oti-knoop als de ti-knoop die eronder hangt meetelt. Dus in ik vraag je om dat te doen, worden twee infinitiefzinnen geteld, en in ik vraag je dat te doen maar eentje.
  2. Er worden ook modifiers met infinitiefvorm meegeteld (bv. ik deed dat om te pesten)

Oplossing / nieuwe definitie

  1. Oplossing: alleen nog ti-knopen tellen.
  2. Eerst wilde ik de infinitivale modifiers erbuiten laten. Maar dan moet je daarvoor een nieuwe variabele maken. En daarvoor komen ze te weinig voor. Een betere oplossing is ze samen te blijven nemen; terug dus naar de oude definitie, zonder uitzondering voor knopen die worden gedomineerd door een mod. Wel moeten we nu de naam van de variabele veranderen en aangeven dat er ook bepalingen in zitten. De nieuwe naam wordt: infin_compl_bep_per_zin

[LINT] nieuwe tekstkenmerken

Op basis van eigen evaluaties wordt overwogen om drie nieuwe tekstkenmerken op te nemen en wordt een lijst van gangbare woorden opgesteld die bij frequentie-analyses moeten worden overgeslagen (gebeurt al). Dit om valse alarmen rond vermeend moeilijke woorden te voorkomen.

Gaat om deze tekstkenmerken:

  • lijdende vormen per deelzin
  • aansprekingen van de lezer (dichtheid)
  • afhankelijkheidslengtes (AL_max)

Verder ook een lemma-variant van het kenmerk wrd_freq_log_zn_corr(lem_freq_log_zn_corr dus). #52

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.