Szerkesztő:BinBot/munka/névelő

Gyakoribb helyesírási javításaim BinBot segítségévelSzerkesztés



Számok és évszámok névelőjeSzerkesztés

A magyar nyelvben magánhangzók előtt az, mássalhangzók előtt a határozott névelőt használunk, de ezt sok cikkszerző nem veszi figyelembe. Erre úgy derült fény, hogy az egyik szerkesztő „a 1900-as évek” típusú hibákat kezdett kézzel javítani, ami aztán feladatként a botgazdák üzenőfalára került, ahol többen foglalkozni kezdtek vele. Hamar kiderült, hogy a hiba nemcsak az ilyen típusú szókapcsolatokat, hanem mindenféle számot és az i. e., i. sz., Kr. e. éveket/évszázadokat stb. is érinti, mégpedig ezrével. Erre készült az alábbi javítócsomag, amelyben először használtam feltételes reguláris kifejezést (így lehetett elérni, hogy az [[x|y]] típusú hivatkozásokban csak az y helyén álló szöveget figyelje a bot, ne az x-et, és ehhez ne kelljen több esetre bontani a keresést). Ezzel és a számjegyek száma szerinti csoportosítással sikerült összesen 3 sorra redukálni az a→az javítási irányt, és ugyanennyire a fordítottját. A kivételek listája természetesen hiányos, csak az első pár száz javítás közben kigyűjtöttek vannak itt.

    'szamnevelo': {
        'regex': True,
        'msg': {
               'hu':u'[[User:BinBot/munka/névelő|Számok, évszámok névelőjének egyeztetése (magánhangzó előtt az, mássalhangzó előtt a áll)]] kézi ellenőrzéssel.',
              },
        'munka': {
            'activity': u'Nyelvtani javítás',
            'targetlink': u'/névelő',
            'target': u'Számok, évszámok névelője',
        },
        'replacements': [
            # Egyelőre csak az egybeírt számokat és szabályos tizedes törteket javítja!
            #   {{szám}} sablonnal írt számok -- fejleszthető
            #    -vel tagolt számok -- fejleszthető
            #   vesszővel, ponttal gányolt számok -- pokolba velük, javíthatatlanok
            # A két legnagyobb aszteroidát, a [[1 Ceres|Cerest]] és a [[4 Vesta|Vestát]] vizsgálja. -- Itt nem szabad javítani!
            # Ezt feltételes kifejezéssel zárjuk ki: http://www.regular-expressions.info/conditional.html
            # A (\[{2}([^\]\|]*?\|)?)? lesz a 3. csoport, ha létezik, ebben az esetben nem | karakterek után ]] zárja a kifejezést.
            # A keresett névelő előtt nem lehet - (%-a) és ] (belső hivatkozáshoz tapadó szóvég)
            
            # Nagyon kell figyelni az az-->a irányú javításoknál, mert itt az az lehet névmás is!
            # No meg lehetnek nem tízes számrendszerben írt számok, amiket nem olvasunk össze.
            # Fordított irányban (a-->az) idegen nyelvű szövegeknél szokott hibázni, és még egy-két ritka esetben,
            # ha a belső hivatkozásban a | előtt szám van, utána meg nem.
            # Előfordult valami ókori forrásjegyzékben is, Arisztotelésznél és Empedoklésznél volt ilyen hiba.
            
            # Egyjegyű, négyjegyű, hétjegyű, tízjegyű... számok (vicces ritmika)
            (ur'\b(?<![\-\]])([Aa])(\s+(\[{2}([^\]\|]*?\|)?)?[15](\d{3})*[^\d](?(3)[^\|]+\]{2}))', ur'\1z\2'),
            (ur'\b(?<![\-\]])([Aa])z(\s+(\[{2}([^\]\|]*?\|)?)?[02346789](\d{3})*[^\d](?(3)[^\|]+\]{2}))', ur'\1\2'),
            # Két- és háromjegyű, öt- és hatjegyű, 3n-1 és 3n jegyű számok
            (ur'\b(?<![\-\]])([Aa])(\s+(\[{2}([^\]\|]*?\|)?)?5\d{1,2}(\d{3})*[^\d](?(3)[^\|]+\]{2}))', ur'\1z\2'),
            (ur'\b(?<![\-\]])([Aa])z(\s+(\[{2}([^\]\|]*?\|)?)?[012346789]\d{1,2}(\d{3})*[^\d](?(3)[^\|]+\]{2}))', ur'\1\2'),
            # Időszámítás előtti és szerinti évszámok
            (ur'\b(?<![\-\]])([Aa])(\s+(\[{2}([^\]\|]*?\|)?)?[Ii]\.\s?(e|sz)\.?\s?[\dIVX](?(3)[^\|]+\]{2}))', ur'\1z\2'),
            (ur'\b(?<![\-\]])([Aa])z(\s+(\[{2}([^\]\|]*?\|)?)?Kr\.\s?[eu]\.?\s?[\dIVX](?(3)[^\|]+\]{2}))', ur'\1\2'),
        ],
        'exceptions': {
            'inside': [
            ],
            'title': [
                ur'^Antonio Stradivari$',
                ur'^Wilson-tétel$',
                ur'^Spanyolország$',
                ur'^2001\. szeptember 11\-ei terrortámadások$',
                ur'^Empedoklész$',
                ur'^Debrecen tömegközlekedése$',
                ur'^Arisztotelész etikája$',
                ur'^Raymond Smullyan$',
                ur'^Salvador Dalí$',
                ur'^Proton$',
                ur'^Wikipédia$',
                ur'^Kettes számrendszer$',
                ur'^A$',
                ur'^UTF-8$',
                ur'^Károly híd$',
                ur'^Lucius Cornelius Scipio Asiaticus \(Kr\. e\. 190\)$',
                ur'^II\.\ Marduk\-apla\-iddna$',
                ur'^Vasa \(hajó\)$',
                ur'^Pal\ Lszl\ó\ \(fest\ő\)$',
                ur'^Go$',
                ur'^Attila\ hun\ kirly$',
                ur'^Baszkfld\ \(autonm\ kzssg\)$',
                ur'^Mars\ Exploration\ Rover$',
                ur'^Anglia$',
                ur'^Paracelsus$',
                ur'^Pilinszky\ Jnos$',
                ur'^II\.\ Jannsz\ biznci\ csszr$',
                ur'^Led\ Zeppelin$',
                ur'^Uganda$',
                ur'^Biotechnolgia$',
                ur'^Pannonhalma$',
                ur'^Hsvtszmts$',
                ur'^Fellegi\ dm$',
                ur'^Sumer$',
                ur'^Csar\-dj\ a\ legjobb\ sznsznnek$',
                ur'^M0\-s\ aut\ó\út\ \(Magyarorszg\)$',
                ur'^Kviddics$',
                ur'^Magyar\ Telekom$',
                ur'^Amerikai\ futball$',
                ur'^Claudio\ Monteverdi$',
                ur'^Jean\-Luc\ Picard$',
                ur'^Dzelmozdony$',
                ur'^Maja\ civilizci\ó$',
                ur'^Eminem$',
                ur'^Arkhn$',
                ur'^Radin$',
                ur'^Demokrata\ Npprt$',
                ur'^The\ Art\ of\ Noise$',
                ur'^Lada$',
                ur'^A\ Night\ at\ the\ Opera\ \(Queen\-album\)$',
                ur'^Mamut$',
                ur'^Juventus\ FC$',
                ur'^Snapszer$',
                ur'^Eurovzis\ Dalfesztivl$',
                ur'^Lbeck$',
                ur'^Padovai\ fegyversznet$',
            ],
            'include': BaseExceptions,
        }
    },