Spørsmål:
Pakk ut anonymiserte spill fra en pgn
Purefan
2020-07-01 00:38:22 UTC
view on stackexchange narkive permalink

Jeg er en stor fan av pgn-extract, men jeg er åpen for andre Linux-vennlige verktøy. Jeg har en stor pgn-fil (over 5 millioner spill) og et sett med ECO-koder. Målet mitt er å hente alle spillene som samsvarer med disse ECO-kodene, men med å fjerne eller fuzzying spillernes navn og rangeringer, året som ble spilt, og resultatet av spillet.

Jeg planlegger da å åpne et tilfeldig spill med Scid og analyser det, siden fjerning av spillernes data og spillresultat vil hjelpe meg å unngå bias.

Så langt bruker jeg pgn-ekstrakt som dette: pgn-extract -t filter_for_naked --noresults - -merker --nokommentarer --noduplikater -bl20 --output naken.pgn my.pgn

Men Scid har problemer med å åpne filen. Som forventet er hvert spill bare sett med trekk (ingen headere i det hele tatt), og jeg mistenker at Scid krever minst noen headere.

Noen råd om hvordan du bruker pgn-extract eller Scid for å oppnå dette?

Fire svar:
kentdjb
2020-07-01 11:45:00 UTC
view on stackexchange narkive permalink

Takk for komplimentet ditt om pgn-extract (jeg er forfatteren). Du kan kanskje gjøre oppgaven litt enklere ved å legge til --linelength 1000 i argumentlisten for å få hvert spill på en enkelt linje, og bruk deretter sed for å legge til et ukjent resultat til slutt av spillet og behandle spillet på nytt med pgn-extract for å legge til en tom 7-tag-liste. Til slutt, bruk sed igjen for å redigere de hvite og svarte kodene.

Den resulterende kommandoen vil se ut som følgende, selv om sed-eksperter kanskje kan rydde opp litt:

  pgn-extract -t filter_for_naked --noresults --notags --nocomments --noduplicates -bl20 --linelength 1000 my.pgn | sed -e 's /..*/ & * /' | pgn-ekstrakt -7 | sed -e 's / White "?" / White "AnonW" /; s / Black "?" / Black "AnonB" /' > naked.pgn  

Du får feil rapporter for spill som ender med at kompis har inkonsekvente resultater, men du kan skjule dem i en loggfil.

Tusen takk David! både for pgn-extract og arbeidskommandoen, det ga meg akkurat det jeg lette etter. Stor hjelp i min jakt etter forbedring.
Vær så god!
Brian Towers
2020-07-01 01:11:20 UTC
view on stackexchange narkive permalink

Scid vs PC krever [Black "AN Other1"] [White "AN Other2"] [Result ""].
Siden dette ble klonet fra SCID, er jeg ganske sikker på at SCID vil være den samme. Jeg foreslår at du skriver et enkelt program for å legge til disse tre overskriftsfeltene med [Resultat] -feltet som samsvarer med resultatet på slutten av spillet.

Arne
2020-07-01 01:25:03 UTC
view on stackexchange narkive permalink

Du kan bruke sed '/ Resultat / c [Resultat ""]' my.pgn > no_results.pgn for å erstatte linjer som inneholder strengen Resultat med hva du vil linjen å være. Du kan adoptere dette for hva annet du vil erstatte. Du vil beholde c .

David Miedema
2020-07-01 01:07:04 UTC
view on stackexchange narkive permalink

Du kan alltid kopiere den rene teksten fra et PGN manuelt, men det fungerer bare for ett spill.

For flere spill er jeg ikke sikker, og dessverre er det mest sjakkprogramvare for windows.



Denne spørsmålet ble automatisk oversatt fra engelsk.Det opprinnelige innholdet er tilgjengelig på stackexchange, som vi takker for cc by-sa 4.0-lisensen den distribueres under.
Loading...