terça-feira, 5 de novembro de 2019

atividade científica

A atividade científica mais importante é o estabelecimento de teorias. Teorias sistematizam o conhecimento adquirido e possibilitam o seu crescimento dedutivamente. (...) Os conceitos teóricos são as peças utilizadas para a construção de uma teoria. As afirmações conectam estes conceitos, formando uma estrutura mais ou menos coerente, ou seja, estabelecem relações entre eles. (...) A parte mais importante de uma teoria é, sem dúvida, as afirmações que podem possuir diferentes status metodológicos e gnosiológicos. No nível científico mais baixo estão os registros, que apenas fixam observações individuais. Eles são muito importantes no início de uma pesquisa, quando se estabelece a existência de um fenômeno, e na conclusão da pesquisa, quando se examinam as teorias. As generalizações empíricas (indutivas) possuem um status um pouco mais alto, substituem vários registros e também inferem algo sobre objetos não observados. Elas estão presentes em todos os estágios de pesquisa, mas, acima de tudo, elas predominam nas pesquisas imaturas onde não é possível estabelecer afirmações de forma dedutiva. Afirmações desta sorte constituem grande parte da linguística atual: todas as regras gramaticais e fonológicas, toda linguística gerativa e a maior parte da linguística histórica consistem em generalizações empíricas de diferentes níveis de abstração. As generalizações empíricas são, em grande parte, afirmações confirmadas, mas que faltam referenciar uma teoria. Elas são em verdade hipóteses trazidas pela indução. Em pesquisas mais desenvolvidas, as hipóteses também são obtidas dedutivamente, a partir de axiomas ou leis. Tais afirmações obtidas pela dedução são chamadas hipóteses ou hipóteses substanciadas. A vantagem reside no fato de que elas estão inseridas em um sistema de afirmações válidas e, portanto, são elas também válidas. A desvantagem é não serem confirmadas no empiricismo, o que geralmente é difícil. Se essas hipóteses forem confirmadas, elas ganham o status de lei. Leis são hipóteses bem fundamentadas e confirmadas. Uma generalização empírica nunca poderá se tornar uma lei, a menos que sejamos capazes de derivar de uma teoria uma hipótese correspondente a ela. Nas ciências empíricas esta é a forma mais comum de pesquisa: observações são feitas sob o pano de fundo de uma ‘teoria’ ainda embrionária, vaga e não formalizada, levando a generalizações empíricas, para a qual uma teoria correspondente é construída. Sem o estabelecimento de leis, um conjunto de afirmações dificilmente poderá ser chamado de teoria. Por esta razão hoje não podemos falar na existência de uma teoria da linguagem, teoria gramatical, e assim por diante. A maioria dos conceitos linguísticos, embora bem complicados, consiste em uma gama de generalizações empíricas. (Altmann & Schwibbe, 1989, p. 1)

original:
“Die wichtigste wissenschaftliche Tätigkeit ist das Aufstellen von Theorien. Theorien systematisieren das erworbene Wissen, und sie geben die Möglichkeit, es deduktiv zu vermehren. (...) Die Bausteine einer Theorie sind theoretische Begriffe, und den Mörtel bilden Aussagen, die diese Begriffe zu einem mehr weniger fest zusammenhängenden Gerüst verbinden, d.h., zwischen ihnen Beziehungen herstellen. (...) Der wichtigste Teil einer Theorie sind ohne Zweifel die Aussagen, die unterschiedlichen methodologischen und gnoseologischen Status aufweisen können. Auf der niedrigsten wissenschaftlichen Stufe stehen die Protokollsätze, die lediglich einzelne Beobachtungen fixieren. Sie sind sowohl zu Beginn der Forschung, wenn die Existenz von Erscheinungen festgestellt wird, als auch beim Abschluß der Forschung, wenn man Theorien überprüft, sehr wichtig. Einen etwas höheren Status besitzen empirische (induktive) Generalisierungen, die eine Menge von Protokollsätzen ersetzen und auch über nicht, beobachtete Objekte etwas aussagen. Sie sind in allen Stadien der Forschung vorhanden, vor allem aber überwiegen sie in der ’unreifen’ Forschung, wo man nicht in der Lage ist, Aussagen deduktiv zu gewinnen. Aussagen dieser Art bilden das Gros in der heutigen Linguistik: Alle grammatischen und phonologischen Regeln, die gesamte generative Linguistik und der größere Teil der historischen Linguistik bestehen aus empirischen Generalisierungen unterschiedlicher Abstraktionsstufen. Empirische Generalisierungen sind - meistens - gut bestätigte Aussagen, jedoch fehlt ihnen die Anlehnung an eine Theorie. Empirische Generalisierungen sind eigentlich induktiv gewonnene Hypothesen. In der weiterentwickelten Forschung werden Hypothesen auch deduktiv gewonnen, durch Ableitung aus Axiomen oder Gesetzen. Derartige deduktiv gewonnene Aussagen bezeichnet man als eigentliche Hypothesen oder begründete Hypothesen. Ihr Vorteil liegt darin, daß sie in ein System von gültigen Aussagen eingebettet und dadurch selbst gültig sind. Ihr Nachteil ist es, daß sie an der Empirie nicht überpruft sind, und oft ist es schwer. Vernünftige Überprüfungsinstanzen zu finden. Wenn es gelingt, eine derartige Hypothese - verhältnismäßig - gut zu bestätigen, so erhält sie den Status eines Gesetzes. Gesetze sind also begründete, gut bestätigte Hypothesen. Eine empirische Generalisierung kann niemals zum Gesetz werden, es sei denn, es gelingt uns, aus einer Theorie eine Ihr entsprechende Hypothese abzuleiten. In den empirischen Wissenschaften ist dies der üblichste Weg der Forschung: Durch Beobachtungen, die auf dem Hintergrund einer embryonalen, vagen, nichtformalisierten ’Theorie’ durchgeführt werden, gelangt man zu empirischen Generalisierungen, zu denen man dann eine entsprechende Theorie konstruiert. Ohne die Aufstellung von Gesetzen kann man eine Menge von Aussagen kaum als Theorie bezeichnen. Dies ist der Grund, warum man heutzutage noch nicht von der Existenz einer Sprachtheorie, einer Grammatiktheorie usw. sprechen kann. Die meisten Iinguistischen Konzeptionen, auch wenn sie formal sehr kompliziert sind, bestehen aus einer Menge von empirischen Generalisierungen.”

quarta-feira, 24 de abril de 2019

read from stdin and printing to stdout UTF-8 string in C

Adapted (from IBM) example to read UTF-8 string from stdin and printing.

#include <errno.h> 
#include <stdio.h> 
#include <stdlib.h> 
#include <wchar.h> 
#include <locale.h> 
int main(void)
{
   char *locale;
   locale = setlocale(LC_ALL, "");
   wint_t  wc;

   errno = 0;
   while (WEOF != (wc = getwchar()))
      printf("wc = %lc\n", wc);

   if (EILSEQ == errno) {
      printf("An invalid wide character was encountered.\n");
      exit(1);
   }
   return 0;
} 

Some usage examples:

$ echo "ção" | ./wtst 
wc = ç
wc = ã
wc = o
wc = 

$ echo "你好" | ./wtst
wc = 你
wc = 好
wc = 

$ echo "Привет" | ./wtst
wc = П
wc = р
wc = и
wc = в
wc = е
wc = т
wc = 

terça-feira, 12 de março de 2019

Text from: Das Menzerathsche Gesetz in informationsverarbeitenden Systemen.
By: Gabriel Altmann and Michael Schwibbe

Kapitel 7 -  DAS MENZERATHSCHE GESTZ ALS RESULTAT DES SPRACHVERARBRITUNGSMECHANISMUS

- R. Köhler -

Die im Menzerathschen Gesetz miteinander verknüpften Begriffe beziehen sich auf bestimmte beobachtbare Eigenschaften (Länge) linguistischer Einheiten (Sätze, Clauses, Wörter, Morpheme, Phoneme); Interpretationen des Gesetzes könnten daher aus allen Modellen (Strukturen und Prozessen) gewonnen werden, die entsprechende Eigenschaften und Einheiten enthalten. Im vorliegenden Beitrag soll nun versucht werden, das Menzerathsche Gesetz mit Hilfe eines Sprachverarbeitungsmodells zu begründen.

Dazu gehen wir von folgender Annahme aus: Die menschliche Sprachverarbeitung ist ein sequenzieller Prozeß; d.h. die Ketten der sprachlichen Komponenten werden stets gliedweise in linearer Folge verarbeitet. Diese Aussage bezieht sich auf Analyse und Synthese gleichermaßen und soll zumindest für eine angenommene höchste Ebene von Konstrukten gelten. Ob es sich hierbei um die Ebene der Teilsätze, der Sätze oder eine noch höhere handelt, lassen wir zunächst offen. Ebenso soll über die Art der Verarbeitung von Einheiten auf tieferen Ebenen, insbesondere über die Auswertung der semantischen Information, hier keine Aussage gemacht werden.

Weiter nehmen wir an, daß für den Sprachverarbeitungsprozeß ein Register fester endlicher Größe als "Arbeitsspeicher" zur Verfügung steht; seine Kapazität entspricht der Speicheranforderung für ein Konstrukt der maximalen Größenordnung. Es ist möglich, daß dieses angenommene Register in einer bestimmten Beziehung zum Kurzzeitgedächtnis steht oder sogar mit diesem identifiziert werden kann. Entsprechende Experimente (vgl. BREDENKAMP, WIPPICH 1977: 120-134) scheinen eine solche Annahme zu stützen: auch für den Bereich der Sprachverarbeitung gibt es eine feste Obergrenze für Einheiten ("chunks"), die behalten werden können. Diese spezielle Hypothese ist jedoch in unserem Zusammenhang nicht nötig und soll hier auch nicht vertreten werden, zumal nicht alle Psychologen von der Existenz einer solcher Instanz ausgehen.

Ein solches Register hat zwei Aufgaben: Die erste besteht darin, die zu bearbeitende Komponente präsent zu halten, solange dies notwendig ist (d.h. bis die Analyse bzw. Synthese vollständig ist), die zweite darin, die erforderliche Strukturinformation zu speichern, die aus den Angaben über die Verknüpfungen der aktuellen Komponente mit anderen Komponenten und die jeweilige Verknüpfungsart besteht. Nehmen wir Sätze als unmittelbare Komponenten einer Texteinheit (Konstrukt) an, so bilden die transphrastischen Bezüge den Gegenstand der Strukturinformation, während die Komponente (der Satz) in Form einer Kette aus Teilsätzen gespeichert ist. In Abbildung 7.1 ist diese Aufteilung schematisch dargestellt. Nun bringt jeder Teilsatz (allgemein: jedes Glied der Kette) wiederum die Notwendigkeit mit sich, einerseits seine Elemente (hier die Wörter), andererseits Strukturinformation (über die Bezüge der Teilsätze untereinander) zu speichern usw. bis zur Phonemebene.



Abb. 7.1. Das Sprachverarbeitungsregister
A = Komponente , B = Strukturinformation

Das hier beschriebene hierarchische Organisationsprinzip hat zur Folge, daß die Strukturinformation jeweils zusammen mit der zugehörigen Ausdruckskette zu speichern ist. Dies ist der Grund dafür, nicht mehrere spezialisierte Register für die verschiedenen Informationstypen zu postulieren, sondern ein allgemeines Sprachverarbeitungsregister anzusetzen; für diese Entscheidung sprechen auch die Resultate von SELVIN und PERCHONOK (1975).

Aus diesem Prinzip und der Kapazitätsbegrenzung des Registers lassen sich zwei Schlußfolgerungen ziehen:
1. Es gibt auf jeder Ebene eine Obergrenze für die Länge von Ketten;
2. Je mehr Komponenten ein Konstrukt hat, desto mehr Strukturinformation wird kumuliert; daher steht umso weniger Kapazität für die Komponenten selbst zur Verfügung.


Aber auch die Zunahme der Strukturinformation ist nicht unbegrenzt, da Anzahl und Typ der Verknüpfungen von Komponenten untereinander bestimmten Einschränkungen unterliegen. Eine Begrenzung liegt darin, daß eine Komponente um so weniger Anknüpfungspunkte bietet, je kürzer (weniger komplex) sie ist; darüber hinaus existieren (semo-/lexo-/syn-/morpho-/phonotaktische) Verknüpfungsrestriktionen. So nimmt beispielsweise mit wachsender Morphemzahl eines Wortes die Anzahl der Modifikationsmöglichkeiten durch Hinzufügen weiterer Morpheme ab. Je mehr Komponenten ein Konstrukt also enthält, desto geringer ist auch die hinzukommende Strukturinformation bei Verknüpfung mit einem zusätzlichen Element, d.h. um so weniger zusätzliche Registerkapazität wird für sie benötigt. Daher liegt folgende Vermutung nahe:

Der Zuwachs an für Strukturinformation benötigter Registerkapazität, die während der Bearbeitung einer Komponente verfügbar gehalten werden muß, ist umgekehrt proportional zu der Anzahl der Komponenten. Bezeichnen wir diesen Zuwachs an Kapazitätsbedarf mit K und die Anzahl der Komponenten des Konstrukts mit x, so gilt

K' = B/x (7.1)

Da der Zuwachs an Strukturinformation wegen der angenommenen Kapazitätsbeschränkung des Registers gleichermaßen die Abnahme der für die Komponente selbst zur Verfügung stehenden Kapazität bedeutet, können wir (7.1) auch folgendermaßen schreiben:

y'/y = -B/x (7.2)

wo y für die Länge der Komponenten steht. Dies entspricht dem Differentialgleichungsansatz von ALTMANN (1980): Die Kürzungsrate für die Komponenten eines sprachlichen Konstrukts ist umgekehrt proportional zur Länge des Konstrukts.

Außer der Ableitung der Differentialgleichung (7.2) ermöglicht das vorgestellte Modell die direkte Interpretation der Parameter der Lösung

y = Ax^b , b < 0 (7.3)

Offensichtlich steht A für die durchschnittliche Länge eines Konstrukts, das aus einer einzigen Komponente besteht (vgl. KOHLER 1982); die numerische Größe von A ist sprach- und textspezifisch. Der Parameter b, der die Steilheit der Kürzung bezeichnet, läßt sich nun unmittelbar aus (7.1) ableiten: er ist ein Maß für den Umfang an Strukturinformation, der durchschnittlich für ein einkomponentiges Konstrukt erforderlich ist. Setzt man nämlich für x die Zahl 1 ein, so ergibt sich für den entsprechenden Informationszuwachs gerade B. Aus dem Modell ergeben sich diesbezüglich zwei Konsequenzen:

1. Wegen des unterschiedlichen Umfangs an notwendiger Strukturinformation muß b sowohl sprachtypisch sein als auch von der linguistischen Analyseebene abhängen;
2. Aus den oben dargestellten Annahmen folgt ein Iinearer Zusammenhang zwischen A und b, wenigstens für Konstrukte der maximalen Größenordnung in dem Idealfall, wo die Komponente zusammen mit der entsprechenden Strukturinformation die Registerkapazität vollständig beansprucht.

Die zweite Konsequenz könnte sich insofern als wichtig erweisen, als sie eine leicht zu testende Hypothese darstellt, mit der das Modell einer direkten empirischen Überprüfung unterzogen werden kann. Da die Länge der Komponente und der Umfang der Strukturinformation nicht mit dem gleichen Maß gemessen werden können, müssen wir einen Proportionalitätsfaktor k einführen. Demnach Ist

A + kb <= R , (7.4)

wobei R für die Größe des Registers steht. Bei empirischen Untersuchungen muß wohl mit beträchtlichen Abweichungen von der Geraden A+kb=R gerechnet werden, da diese Gleichung nur für das maximal ausgenutzte Register gilt. Dennoch sollten sich die empirischen Punkte mit den Koordinaten Ai und bi aus genügend Textuntersuchungen signifikant nach einer entsprechenden Regressionsgeraden ausrichten. Nach den obigen Überlegungen ist zu erwarten, daß solche Tests
1. zu sprach- und ebenentypischen Ergebnissen führen;
2. um so geringere Streuungen zeigen werden, je näher die untersuchte Ebene der maximalen Größenordnung von Komponenten kommt.

Eine mögliche Erweiterung des hier beschriebenen Modells besteht in der Einbeziehung der lexikalischen Information. Es erscheint plausibel, davon auszugehen, daß Verweise auf die jeweiligen lexikalischen Bedeutungen einer Komponente unmittelbar zusammen mit der Komponente im Register gehalten werden. Trifft diese Annahme zu, so gelten die oben dargestellten Überlegungen analog. Die Kapazitätsbeschränkung des Sprachverarbeitungsregisters erzwingt eine Optimierung der Verteilung der Bedeutungszshlen in Bezug auf die Länge der Komponenten. Unter funktionalanalytischem Gesichtspunkt ist eine solche optimale Verteilung als Systembedürfnis aufzufassen, die den Selbstregulationsprozeß der Sprache (vgl. ALTMANN 1981; KOHLER, ALTMANN 1983) beeinflußt. Das Ergebnis ist ein Kompromiß konkurrierender Systembedürfnisse; er schlägt sich als Ausdruck eines Fließgleichgewichts des sprachlichen Systems im Lexikon nieder. In ALTMANN, BEOTHY, BEST (1982) und ROTHE (1983) wird gezeigt, daß die Bedeutungszahl von der Länge ebenfalls gemäß (7.3) abhängt; die Modellerweiterung kann analog zu oben mit (7.4) überprüft werden.

Bisher haben wir uns auf den hyperbolischen Anteil des Originalansatzes beschränkt; die ursprüngliche Gesetzeshypothese läßt sich In zwei Aspekte aufspalten. Der eine bezieht sich auf die hier betrachtete Repräsentation sprachlicher Zeichen und ihre Verarbeitung, der zweite auf Erscheinungen im Zusammenhang mit der Produktion bzw. der Wahrnehmung gesprochener bzw. geschriebener Sprache. Dabei geht es um Wahrnehmungsschwellen für die Länge von Komponenten, die in Übereinstimmung mit dem Weber-Fechnerschen Gesetz in Form von konstanten Veränderungräten beschrieben werden können:

y'/y = -c y=Ae^(-cx) .

Für Beobachtungen, bei denen beide Aspekte eine Rolle spielen, ist zu erwarten, daß die beiden Funktionen zusammengesetzt werden müssen, um die Daten zu beschreiben:

y = Ax^b e^(-cx) ,

was der allgemeinen Lösung des Altmannschen Differentialgleichungsansatzes entspricht.

quinta-feira, 7 de março de 2019

Text from: Das Menzerathsche Gesetz in informationsverarbeitenden Systemen.
By: Gabriel Altmann and Michael Schwibbe
Die wichtigste wissenschaftliche Tätigkeit ist das Aufstellen von Theorien. Theorien systematisieren das erworbene Wissen, und sie geben die Möglichkeit, es deduktiv zu vermehren. Durch das Aufzeigen von Lücken im Netz der Aussage stimulieren sie gezielte Forschung, geben sie einen festen Hintergrund bei der Kritik anderer Theorien, ermöglichen sie Erklärungen und Prognosen, und sie stellen Mittel zu ihrer eigenen Verbesserung zur Verfügung (vgl. SPINNER 1974: 120-123). Theorien, so wie sie in den Naturwissenschaften vorhanden sind, stellen das große Vorbild, den Wunschtraum vieler Linguisten dar, und es fehlt nicht an Versuchen, Aussagen über Wort- und Satzbildung oder darüber, welche Erscheinungen es in der Sprache gibt und welche Funktion sie hat, als eine Sprachtheorie zu bezeichnen.

Woraus besteht eine Theorie? Die Bausteine einer Theorie sind theoretische Begriffe, und den Mörtel bilden Aussagen, die diese Begriffe zu einem mehr weniger fest zusammenhängenden Gerüst verbinden, d.h., zwischen ihnen Beziehungen herstellen. Die dritte Klasse von Komponenten einer Theorie sind Konventionen wie etwa Definitionen, Operationen, Kriterien usw., die im Laute der Forschung immer strenger festgesetzt werden.

Der wichtigste Teil einer Theorie sind ohne Zweifel die Aussagen, die unterschiedlichen methodologischen und gnoseologischen Status aufweisen können. Auf der niedrigsten wissenschaftlichen Stufe stehen die Protokollsätze, die lediglich einzelne Beobachtungen fixieren. Sie sind sowohl zu Beginn der Forschung, wenn die Existenz von Erscheinungen festgestellt wird, als auch beim Abschluß der Forschung, wenn man Theorien überprüft, sehr wichtig. Einen etwas höheren Status besitzen empirische (induktive) Generalisierungen, die eine Menge von Protokollsätzen ersetzen und auch über nicht, beobachtete Objekte etwas aussagen. Sie sind in allen Stadien der Forschung vorhanden, vor allem aber überwiegen sie in der 'unreifen' Forschung, wo man nicht in der Lage ist, Aussagen deduktiv zu gewinnen. Aussagen dieser Art bilden das Gros in der heutigen Linguistik: Alle grammatischen und phonologischen Regeln, die gesamte generative Linguistik und der größere Teil der historischen Linguistik bestehen aus empirischen Generalisierungen unterschiedlicher Abstraktionsstufen. Empirische Generalisierungen sind - meistens - gut bestätigte Aussagen, jedoch fehlt ihnen die Anlehnung an eine Theorie. Empirische Generalisierungen sind eigentlich induktiv gewonnene Hypothesen. In der weiterentwickelten Forschung werden Hypothesen auch deduktiv gewonnen, durch Ableitung aus Axiomen oder Gesetzen. Derartige deduktiv gewonnene Aussagen bezeichnet man als eigentliche Hypothesen oder begründete Hypothesen. Ihr Vorteil liegt darin, daß sie in ein System von gültigen Aussagen eingebettet und dadurch selbst gültig sind. Ihr Nachteil ist es, daß sie an der Empirie nicht überpruft sind, und oft ist es schwer. Vernünftige Überprüfungsinstanzen zu finden. Wenn es gelingt, eine derartige Hypothese - verhältnismäßig - gut zu bestätigen, so erhält sie den Status eines Gesetzes. Gesetze sind also begründete, gut bestätigte Hypothesen. Eine empirische Generalisierung kann niemals zum Gesetz werden, es sei denn, es gelingt uns, aus einer Theorie eine Ihr entsprechende Hypothese abzuleiten. In den empirischen Wissenschaften ist dies der üblichste Weg der Forschung: Durch Beobachtungen, die auf dem Hintergrund einer embryonalen, vagen, nichtformalisierten 'Theorie' durchgeführt werden, gelangt man zu empirischen Generalisierungen, zu denen man dann eine entsprechende Theorie konstruiert. Ohne die Aufstellung von Gesetzen kann man eine Menge von Aussagen kaum als Theorie bezeichnen. Dies ist der Grund, warum man heutzutage noch nicht von der Existenz einer Sprachtheorie, einer Grammatiktheorie usw. sprechen kann. Die meisten Iinguistischen Konzeptionen, auch wenn sie formal sehr kompliziert sind, bestehen aus einer Menge von empirischen Generalisierungen. Die in der formalen Linguistik verbreiteten deduktiven Beschreibungsmodelle werden häufig aufgrund der formalen Ähnlichkeit solcher axiomatischen Systeme und Ihrer Schlußregeln mit dem deduktiven Prinzip wissenschafticher Erklärung fälschilich als Theorien angesehen. Die Hauptentitäten dleser Modelle sind Regeln (wie "S-->NP+VP"), die lediglich empirische Generalisierungen darstellen. Ein System, das aus einer Menge solcher Regeln besteht, besitzt - entgegen aller Behauptung - keinerlei erklärende Kraft; es dient der Deskription von Sprachen, führt aber nicht zur Theorie der Sprache.

Gesetze werden aus anderen Gesetzen oder aus Axiomen abgeleitet. Axiome sind also die höchstrangigen Aussagen einer Theorie. Sie werden nicht abgeleitet, sondern angesetzt. Bei nicht ausgereiften Theorien können ihre Rolle auch einfache, mehr oder weniger evidente Annahmen übernehmen.

Die Suche nach Gesetzen ist wohl die vordringlichste und vornehmste Aufgabe der empirischen Wissenschaften. Die Annahme, daß in der Sprache oder im Sprachverhalten nur Regeln gültig seien, ist falsch. Alle Dinge gehorchen Gesetzen (vgl. BUNGE 1977: 16, Ontological principle 8). Regeln sind Instabile, variable, durch Evolution, Konvention oder Eingriff veränderliche Entitäten, während Gesetze invariante, vom bewußten menschlichen Willen unabhängige Beziehungen darstellen. Die Regeln der Sprache ändern sich ständig, die Gesetze sind unveränderlich.

Etwas präziser formuliert, kann als Gesetz eine begründete und testbare wissenschaftliche Hypothese dann betrachtet werden, wenn sie in bestimmter Hinsicht allgemeingültig ist, d.h., sich nicht auf einmalige Objekte bezieht, zu der jeweils gegebenen Zeit in einem Bereich befriedigend bestätigt worden ist und zu einem - gleichgültig, ob ausgereiften oder unausgereiften - wissenschaftlichen System gehört (vgl.BUNGE 1961; 1967, I: 361). Es handelt sich bei Gesetzen also um empirisch sinnvolle Aussagen, deren Schlüsselfertige sich nicht auf sprachliche Einzelerscheinungen beziehen, die für alle Sprachen gelten, hinreichend bestätigt worden sind und zu einem System von Sätzen gehören. Die letztere Forderung ist für die Linguistik zur Zeit am schwierigsten zu erfüllen.

Es existieren keine einigermaßen ausgereiften Sprachtheorien, obwohl es bereits Theorien über einige begrenzte Teilgebiete gibt. Die Systematisierung einer Aussage ist einfach, wenn sie aus einem Axiomensystem folgt. Als einziges Problem bleibt dann nur die Bestätigung. Wenn aber kein Axiomensystem vorhanden ist, so wird die Hypothese zwar aus Annahmen, die die Axiome einer Mikrotheorie darstellen abgeleitet, aber das Problem der Bestimmung der Parameter bildet eine oft noch größere Schwierigkeit als die Ableitung selbst. Es geht dabei nicht um die - statistische - Schätzung der Parameter aus den Daten, sondern um ihre Einsetzung nach ihrer Entnahme aus Theorien anderer Teilgebiete. Da in der Linguistik Theorien nur in sehr geringer Zahl vorhanden sind, wird dieses Problem vielen linguistischen Theorien noch lange Schwierigkeiten bereiten. Das Problem liegt auch darin, daß im Unterschied zur Physik, wo die Materialien relativ exakt meßbare Eigenschaften haben, d.h., relativ scharf unterschieden werden können, die sprachlichen Entitäten vorläufig eine ziemlich unscharfe Identität aufweisen. Bedenkt man beispielsweise, was für unterschiedliche Eigenschaften Texte ais einem einzigen Genre, beispielsweise Prosatexte, besitzen, so wagt man kaum, irgendwelche Parameter der 'Prosa' in eine gesetzesartige Aussage einzusetzen. Es gibt in diesem Bereich keine echten 'Grundgesamtheiten' (vgl. ORLOV, BORODA, NADAREJSVILI 1982), sondern nur Individuelle Werke, so daß es schwer sein wird, Klassen von Texten mit gleichen Parametern auszusondern und diese Parameter zu begründen bzw. abzuleiten.

Auch das Problem der Bestätigung einer Hypothese ist nicht immer leicht. Aus einer sehr allgemeinen Aussage, die ein Gesetz darstellt, sollten möglichst viele Konsequenzen folgen. Je allgemeiner die Begriffe in einer gesetzesartigen Aussage sind, desto mehr Konsequenzen lassen sich durch Einsetzung spezifischer Begriffe ableiten. Setzt man aber spezifizierte Begriffe ein, so müssen gleichzeitig Identifikations - und Segmentaktionsprozeduren entworfen werden, die es erlauben, die betreffenden Entitäten aus Texten, Grammatiken oder Wörterbüchern zu gewinnen. Es müssen Erhebungs - und Testprozeduren festgelegt werden, die nicht immer aus der Statistik übernommen werden können. Es müssen oftmals enorme Datenmengen verarbeitet werden, wobei es leichter ist, große Textmengen als viele Sprachen zu bearbeiten. Zum Unglück handelt es sich bei Sprachgesetzen immer um Aussagen, die für alle Sprachen gelten sollen, so daß man gezwungen ist, zu ihrer Überprüfung sowohl viele Texte - wenn es sich um ein textbezogenes Gesetz handelt - als auch viele Sprachen in Betracht zu ziehen. Es is kein Wunder, daß die Formulierung von Sprachgesetzen lange Zeit hat sich warten lassen. Diejenigen Gesetze, die bereits akzeptiert worden sind, zeigen immer noch gewissen kleine Mängel, die sich nur mühsam beseitigen lassen. Dies ist aber der normale Weg der Wissenschaft, die zu keiner Zeit die 'volle' Wahrheit enthüllt, sondern sich ihr graduell nähert, indem sie Teilwahrheiten entdeckt und sich ständig korrigiert (vgl. BUNGE 1967: I, 18)

Ein wissenschaftshistorisch sehr lehrreiches Beispiel stellt das sogenannte Zipf-Mandelbrotsche Gesetz dar, dessen Analogien aus der Biologie, der Ökonomie der Dokumentation und aus anderen Gebieten bekannt sind. Es entwickelte sich von empiristischen Anfängen, bei denen man einem Verlauf von numerischen Werten eine Kurve anpaßte, bis hin zu ziemlich komplizierten 0berlegungen mit vollen mathematischen Ableitungen (vgl. ZIPF 1935, 1949: MANDELBROT 1953, 1954; SIMON 1955; ORLOV 1976; WOODROOFE, HILL 1975: FAIRTHORNE 1969, ARAPOV, SREJDES 1978 etc. etc.). Ein anderes Bespiele ist das 'Menzerathsche Gesetz', das bereite im vorigen Jahrhundert zunächst als Beobachtung festgehalten wurde, später im Bereich der Phonetik generalisiert, ja sogar mit empirischen Formeln erfaßt wurde. Menzerath selbst faßte dleses Gesetz in die Worte: "Je langer das Ganze, desto kleiner die Teile", eine Formulierung, die sich mathematisch leicht ausdrücken Iäßt. Zur Zeit steht man bei theoretischen Ansätzen, die später systematisiert werden müssen.

Ebenso, wie sich die Gültigkeit des Zipf-Mandelbrotschen Genetzes auch an nicht linguistischem Material erwiesen hat, etwa in der Musik (vgl. BORODA 1980) oder in der Malerei (vgl, VOLOSIN, ORLOV 1972), so erwarten wir auch eine allgemeinere Gültigkeit des Menzerathschen Gesetzes im Rahmen informationsübertragender Systeme (vgl. Kap. 6 und 7). Vielleicht sind diese beiden hier genannten Gesetze lediglich Konsequenzen des Prinzips der geringsten Anstrengung oder eines anderen, bisher noch unbekannten Prinzips des menschlichen Verhaltens, so daß sie sich später einheitlich ableiten lassen werden. Auf jeden Fall öffnet sich hier ein weites Forschungsfeld.

Unsere Aufgabe besteht In dem vorliegenden Buch darin, einige Ansätze zur Ableitung des Menzerathschen Gesetzes vorzulegen, seine Gestalt in Form einer Funktion anzugeben (Kap. 2). mehrere linguistische Hypothesen, die aus dem Gesetz folgen, aufzuzeigen (Kap. 3), einige dieser Hypothesen auf einer breiten Grundlage mit Hilfe statistischer Methoden (Kap. 4) zu testen (Kap. 6) sowie das Gesetz verallgemeinernd in andere Gebiete der Linguistik, der Biologie, der Primatensoziologie und der Psychologie (Kap. 6 und 7) zu übertragen.

quinta-feira, 4 de setembro de 2014

Hexagon Binning


Hexagon binning is a bivariate histogram useful for visualizing the structure of data when they depend on two random variables. A simpler model, considering only one variable may have unaddressed, correlated errors, leading them to look simpler than they should. This is problematic because it may suggest spurious regularity. This error is typical in fitting algorithms that assume that $x$ is known perfectly and only $y$ is measured with uncertainty.

The concept of hexagon binning is to tessellate the $xy$ plane over a certain range by a regular grid of hexagons. The number of data points falling in each bin is counted. The hexagons are plotted with color or radius varying in proportion to the observed data count in each bin. A hexagon tessellation is preferred over the square counterpart since hexagons have symmetry of nearest neighbors which is lacking in square bins. Moreover, hexagons are the polygon that can create a regular tessellation of the plane that have the largest number of sides. In terms of packing, a hexagon tessellation is 13% more efficient for covering the plane than squares. Hexagons are then less biased for displaying densities than other regular tessellations.



The counts observed are a result of the underlying statistical characteristics of the data, the tiling used to divide the domain and the limited sample taken from the population. Therefore, ragged patterns might appear where a continuous transition should take place. It is then usual to apply a smoothing over the binning counts to avoid this.

hexbin: Hexagonal Binning Routines in R

Hexagon Binning of Word Frequency

Analyzing the relation between word frequency and its rank has been a key object of study in quantitative linguistics for almost 80 years. It is well known that words occur according to a famously systematic frequency distribution known as Zipf's or Zipf-Mandelbrot law. The generalization proposed by Mandelbrot starts that the relation between rank ( $r$ ) and frequency ( $f$ ) is given by

$ f(r) = \frac{C}{(r + \beta)^\alpha} $

where $C$, $\beta$ and $\alpha$ are a constants.

The standard method to compute the word frequency distribution is to count the number of occurrences of each word and sort them afterwards according to their decreasing frequency of occurrence. The frequency $f(r)$ of the $r$ most frequent word is plotted against its rank $r$, yielding a roughly linear curve in a log-log plot. The frequency and rank are both estimated from the very same corpus, what could lead to correlated errors between them.  

Analyzing the example proposed by Wentian Li (1992), and also previously by George A. Miller (1957), we might observe that a problem might incur from the method described above to count and rank words. Words that are equally probable will, by chance, appear with different frequency count and therefore they will appear as a strikingly decreasing curve, suggesting an interesting relation between frequency and rank, that turns out to be more problematic for low-frequency words, whose frequencies are measured with lack of precision. It might be a spurious association created between an observed pattern and an underlying structure.



This unwelcome situation might be mitigated by using an extremely large corpus or by using two independent corpora to estimate both variables: frequency and rank.

Steven T. Piantadosi proposes:
Fortunately, the problem is easily fixed: We may use two independent corpora to estimate the frequency and frequency rank. In the above case where all words are equally probable, use of independent corpora will lead to no apparent structure -- just a roughly flat frequency-rank relationship. In general, we need not have two independent corpora from the start; we can imagine splitting our initial corpus into two subcorpora before any text processing takes place. This creates two corpora that are independent bodies of text (conditioned on the general properties of the starting corpus) and, so, from which we can independently estimate r and f(r). A convenient technique to perform this split is to perform a binomial split on observed frequency of each word: If we observe a word, say, 100 times, we may sample from a binomial (N = 100, p = .5) and arrive at a frequency of, say, 62 used to estimate its true frequency and a frequency of N - 62 = 38 to estimate its true frequency rank. This exactly mirrors randomly putting tokens of each word into two independent corpora, before any text processing began. The choice of p = .5 is not necessary but yields two corpora of approximately the same size. With this method, the deviations from a fit are interpretable, and our plotting method no longer introduces any erroneous structure.

Figure 1a shows such a plot, giving the frequency/frequency-rank relationship from the American National Corpus (ANC; Reppen & Ide, 2004), a freely available collection of written American English. All figures in this paper follow this plotting procedure unless otherwise noted. The plot shows a two-dimensional histogram of where words fall in frequency/frequency-rank space. 7 The shading of the histogram is done logarithmically with the number of words falling into each hexagonal bin and is white for zero-count bins. Because the plot has a logarithmic y-axis, words with zero frequency after the split are not shown. The fit of Eq. 2 using a maximum-likelihood method on the separate frequency and frequency rank portions of the corpus is shown in the red solid line. Additionally, a locally smoothed regression line (LOESS) (Cleveland, Grosse, & Shyu, 1992) is shown in gray. This line corresponds to a local estimate of the mean value of the data and is presented as a comparison point to see how well the fit of Eq. 2 matches the expected value of the points for each frequency rank (x-value). In the corner, several key values are reported: the fit α and β, an R 2 measure giving the amount of variance explained by the red line fit, and an adjusted R 2 adj capturing the proportion of explainable variance captured by the fit, taking the smoothed regression as an estimate of the maximum amount of variance explainable. For simplicity, statistics are computed only on the original R 2 , and its significance is shown with standard star notation (three stars means p < .001).
This plot makes explicit several important properties of the distribution. First, it is approximately linear on a log-log plot, meaning that the word frequency distribution is approximately a power law, and moreover, is fit very well by Eq. 2 according to the correlation measures. This plot shows higher variability toward the low-frequency end, (accurately) indicating that we cannot estimate the curve reliably for low-frequency words. While the scatter of points is no longer monotonic, note that the true plot relating frequency to frequency rank must be monotonic by definition. Thus, one might imagine estimating the true curve by drawing any monotonic curve through these data. At the low-frequency end, we have more noise and, so, greater uncertainty about the shape of that curve. This plot also shows that Eq. 2 provides a fairly accurate fit (red) to the overall structure of the frequency-rank relationship across both corpora.
Importantly, because we have estimated r and f(r) in a statistically independent way, deviations from the curve can be interpreted. Figure 1b shows a plot of these deviations, corresponding to the residuals of frequency once Eq. 2 is fit to the data. Note that if the true generating process were something like Eq. 2, the residuals should be only noise, meaning that those that are above and below the fit line (y = 0 in the residual plot) should be determined entirely by chance. There should be no observable structure to the residual plot. Instead, what Fig. 1b reveals is that there is considerable structure to the word frequency distribution beyond the fit of the Zipf–Mandelbrot equation, including numerous minima and maxima in the error of this fit. This is most apparent in the “scoop” on the right-hand size of the plot, corresponding to misestimation of higher ranked (lower-frequency) words. This type of deviation has been observed previously with other plotting methods and modeled as a distinct power law exponent by Ferrer i Cancho and Solé (2001), among others. 
However, what is more striking is the systematic deviation observed in the left half of this plot, corresponding to low-rank (high-frequency) words. Even the most frequent words do not exactly follow Zipf’s law. Instead, there is a substantial auto-correlation, corresponding to the many local minima and maxima (“wiggles”) in the left half of this plot. This indicates that there are further statistical regularities -- apparently quite complex -- that are not captured by Eq. 2. These autocorrelations in the errors are statistically significant using the Ljung-Box Q-test (Ljung & Box, 1978) for residual autocorrelation (Q = 126,810.1, p < .001), even for the most highly ranked 25 (Q = 5.7, p = .02), 50 (Q = 16.7, p < .001), or 100 (Q = 39.8, p < .001) words examined. 
Such a complex structure should have been expected: Of course, the numerous influences on language production result in a distribution that is complex and structured. However, the complexity is not apparent in standard ways of plotting power laws. Such complexity is probably incompatible with attempts to characterize the distribution with a simple parametric law, since it is unlikely that a simple equation could fit all of the minima and maxima observed in this plot. At the same time, almost all of the variance in frequencies is fit very well by a simple law like Zipf’s power law or its close relatives. A simple relationship captures a considerable amount about word frequencies but clearly will not explain everything. The distribution in language is only near-Zipfian.

Steven T. Piantadosi (2014). Zipf’s word frequency law in natural language: A critical review and future directions


sábado, 23 de março de 2013

20 steps to unlock and install Cyanogenmod on Xperia Mini Pro


20 steps to unlock and install cyanogenmod on Xperia Mini Pro

1. download Android SDK
http://developer.android.com/sdk/index.html
extract it in you /tmp/ for example

2. Open the Phone application on the Xperia Mini Pro and enter *#06# to obtain the device's IMEI. Save this for later use.

3. Put the device into fastboot mode:
   a) Turn off your Sony device
   b) Press and hold the Volume Up button, at the same time plug in the micro USB cable which already connected with PC.
   c) You should see Blue Color LED light up.
   d) You are now in fastboot mode.

4. cd /tmp/adt-bundle-linux-x86_64-20130219/sdk/platform-tools

5. sudo ./fastboot -i 0x0fce getvar version
version: 0.3
finished. total time: 0.001s

6. http://unlockbootloader.sonyericsson.com/instructions
   a) Click the 'continue' button at the bottom of the page.
   b) Agree to the 'Are You Sure' and 'Legal Terms' prompts to continue.
   c) Enter the first 14 digits of your IMEI.
   d) You will receive you unlock boot loader key on your email.

7. In the PC's terminal, enter the following command:
   sudo ./fastboot -i 0x0fce oem unlock 0xKEY
   where KEY corresponds to the unlock code you were given.

$ sudo ./fastboot -i 0x0fce oem unlock 0xKEYKEYKEY
...
(bootloader) Unlock phone requested
(bootloader) Erasing block 0x00001300
(bootloader) Erasing block 0x00001400
(bootloader) Erasing block 0x00001500
(bootloader) Erasing block 0x00001600
(bootloader) Erasing block 0x00001700
(bootloader) Erasing block 0x00001800
(bootloader) Erasing block 0x00001900
(bootloader) Erasing block 0x00001a00
(bootloader) Erasing block 0x00001b00
(bootloader) Erasing block 0x00001c00
(bootloader) Erasing block 0x00001d00
(bootloader) Erasing block 0x00001e00
(bootloader) Erasing block 0x00001f00
OKAY [ 10.465s]
finished. total time: 10.465s

8. The Xperia Mini Pro's bootloader should now be unlocked.

9. Download Google Apps
   http://goo.im/gapps

10. Place the CyanogenMod rom .zip file on the root of the SD card.
    And also the supplemental Google App package

11. Extract the boot.img from the zip, you will need this file for fastboot.

12. Put the phone into fastboot mode again.

13. Open a terminal and enter the following:
    sudo ./fastboot -i 0xfce flash boot boot.img
    sudo ./fastboot -i 0xfce reboot
    While the device reboots, press the Volume rockers a few times to load recovery.

14. Select backup and restore to create a backup of the current installation on the Xperia Mini Pro.

15. Select the option to wipe data/factory reset.

16. Select Install zip from sdcard.

17. Select Choose zip from sdcard.

18. Select the CyanogenMod file you placed on the sdcard.

19. Install the Google Apps using the same method.

20. Once the installation has finished, return back to the main menu, and select the reboot system now option. The Xperia Mini Pro should now boot into CyanogenMod.


terça-feira, 19 de março de 2013

percentual of Hapax legomenon in English

Computing the percentage of Hapax legomenon through the Gutenberg's database.

Bellow follows a python script to get number of Hapax legomenon and total lexical size through 1000 randomly chosen books in Gutenberg. The printed is result is the percentage of Hapax legomenon in each text.


#!/usr/bin/env python

import random
import urllib2
import re
import os

numMinGuttenberg = 10001
numMaxGuttenberg = 42370
numRand = 1000

ftpurl = "ftp://ftp.ibiblio.org/pub/docs/books/gutenberg/"

for x in xrange(numRand):
   rndint = random.randint(numMinGuttenberg,numMaxGuttenberg)
   try:
      txturl = ftpurl + str(rndint)[0] + '/' + str(rndint)[1] + '/' + str(rndint)[2] + '/' + str(rndint)[3] + '/' + str(rndint) + '/' + str(rndint) + '.txt'
      os.system('wget -nv -q -U firefox -O /tmp/txt ' + txturl)
      os.system('./wordcount.sh /tmp/txt > /tmp/wcount')
      a=os.popen("grep -c ': 1' /tmp/wcount").read()
      b=os.popen("sed -n '$=' /tmp/wcount").read()
      print float(a)/float(b)
   except Exception, e:
      print e
      continue

The script above use the bash script called wordcount.sh

#!/bin/bash
tr 'A-Z' 'a-z' < $1 | tr -sc 'A-Za-z' '\n' | sort | uniq -c | sort -n -r | sed 's/[[:space:]]*\([0-9]*\) \([a-z]*\)/\2 : \1/' 

Run the script above and save the result to a text file, remove the lines where there was error in retrieving information and finally compute the average.


./hapaxlegomenon.py > hapaxlegomenon_results.txt

# remove lines with "could not blablabla"
sed -i '/could/d' hapaxlegomenon_results.txt

# compute average, min and max values
awk '{if(min==""){min=max=$1}; if($1>max) {max=$1}; if($1< min) {min=$1}; total+=$1; count+=1} END {print total/count, min, max}' hapaxlegomenon_results.txt

Results (from 788 texts):
min = 0.37550 max = 0.69534 avg = 0.54535 std = 0.045773


Intuitively we expect to observe a lower percentage of Hapax legomenon on a lexicon when dealing with rather less formal texts. In order to test it, we computed the percentage by using 18828 messages of Usenet newsgroups. The percentage of Hapax legomenon found in the lexicon was 0.49674. The code used follows bellow.

#!/bin/bash
wget http://qwone.com/~jason/20Newsgroups/20news-18828.tar.gz
tar -C /tmp/ -xvzf 20news-18828.tar.gz
for file in $(find /tmp/20news-18828/ -type f ); do cat $file >> /tmp/20news-18828.txt; done
./wordcount.sh /tmp/20news-18828.txt > /tmp/20news-18828count.txt
# number of Hapax legomenon
grep -c ': 1' /tmp/20news-18828count.txt
# total number of lexical entries
sed -n '$=' /tmp/20news-18828count.txt

Maybe if we use a less formal data-set, which would better approach the natural spoken language, then we expect a lower value for the percentage of Hapax legomenon on the lexicon. In order to do so we used IRC logs. Some are archived for a record of communications concerning major events in the history. Logs were made during the Gulf War and Oklahoma City bombing, for example. These and other events are kept in the ibiblio archive. The script bellow was used and the surprising result is that the percentage found was 0.45714, what is not a huge drop as one would expect.

wget -r http://www.ibiblio.org/pub/academic/communications/logs/
rm /tmp/irc.txt
for file in $( ./findbymime.sh /tmp/irc/ "application/octet-stream" ); do cat $file >> /tmp/irc.txt; done
for file in $( ./findbymime.sh /tmp/irc/ "text/plain" ); do cat $file >> /tmp/irc.txt; done
./wordcount.sh /tmp/irc.txt > /tmp/irccount.txt
grep -c ': 1' /tmp/irccount.txt
sed -n '$=' /tmp/irccount.txt