CentreForDigitalHumanities / tscan

T-scan: an analysis tool for dutch texts to assess the complexity of the text, based on original work by Rogier Kraf
GNU Affero General Public License v3.0
18 stars 6 forks source link

[TSCAN] nieuwe kenmerken op basis van lijst formele woorden #51

Open oktaal opened 3 years ago

oktaal commented 3 years ago

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:

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 => 
_.findKey(formele_woorden, fw => 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.

oktaal commented 2 years ago

Ik heb de kenmerken rond formaliteit nu in de T-Scanhandleiding gezet, versie 38; die gaat ook hierbij. Daarbij heb ik erop gerekend dat de formaliteitskenmerken volgen op de intensiveerders en vooraf gaan aan de probabiliteitskenmerken. Ze komen dus net voor Log_prob_fwd.

oktaal commented 2 years ago

Ik nog een nieuwe vraag: mag er aan het eind van de woordkenmerken een kenmerk formeel bijkomen, waarin formele woorden (van welk type dan ook) een 1 krijgen en de rest een 0?