samedi 24 mars 2012

INTEX, UNITEX, NOOJ

Some technologies I'd never heard of but probably should have:

Unitex - a corpus-processing system

Nooj - a linguistic development environment

INTEX  - a linguistic development environment

vendredi 23 mars 2012

Notes de lecture : Degenne, Alain (1997) "Quelques modèles en analyse des réseaux sociaux: Présentation du numéro" Mathématiques et sciences humaines, tome 137, p. 5-9

****ce post est toujours en construction****


[PDF]

Un numéro de Mathématiques et sciences humaines (tome 137 - il n'y a pas de titres propres) trait particulièrement l'analyse des réseaux sociaux (dans le sens large - c.a.d. pas forcement numérique - du terme).

Dans l'introduction du numéro, Alain Degenne parle brièvement des relations entre les sciences humaines et les mathématiques sur les question d'analyse. Il présente quelques méthodes de collecte des données, et méthodes de représentation des données.


Etat de la discipline


Il présente l'état de la discipline (au moment qu'il écrivait) comme dérivant de de grandes traditions :
(mon illustration)

Je n'ai toujours pas assez de bases et références pour pouvoir dire au quel point  cela est toujours le cas à l'heure actuelle.



Sciences humaines et mathématiques


Les théories élaborées par des mathématiciens n'ont pas eu beaucoup de succès auprès des sociologues (dans Faust et Wasserman (1994), "on n'y trouve aucune référence à des notions dotées de propriétés algébriques fortes").
Je suis plus ou moins certaine que cela n'est plus le cas aujourd'hui.


La représentation graphique des réseaux

Comment dessiner, par exemple, la graphe des citations entre auteurs dans des articles scientifiques? (Travaux sur ces relations: White, Boorman, Breiger, 1976: tout le monde cite les plus connus, personne cite les débutants, etc.)

Si chaque noeud est un auteur, on peut dessiner des graphes comme ceux-là:



(source de l'image)

Mais comment prendre en compte d'autres données - les caractéristiques des auteurs (âge, diplômes, universités, etc.), les caractéristiques des relations (les dates des citations) - qui seront, aussi, importants pour l'analyse?

Possibilités :




[source de l'image]



Il faudra que j'aille voir cet article en plus de détail, mais il y a déjà une chose que Deganne a relevé: Snijders, Spreen et Zwaagstra créent la distinction entre "réseaux complets" et "réseaux personnels" :
"A complete network refers to a group of  individ uals and one or more types  of  relation, and the data indicates, for every pair of  individuals, whether or not the relation is present between them. A personal  or egocentric network refers to one central individual, indicated as ego, the respondent, or the focal individual; the other individuals with whom ego has a relation of  the considered type together constitute ego's personal network. These other individuals are referred to as aIters and also, in their relation to the respondent, as nominees. The usual type of personal network data consists of a sample of respondents, wherein for each respondent, all relations in his personal network are identified."
Je continue à citer l'article de 1995, pour les parties que Degenne a traduit, et un peu plus:
"Many  statistical methods are available for the analysis of  complete network data; [...] This is not the case for the analysis of personal networks. Personal network data distinguish themselves from other types of data in two aspects:  first,  the mutual dependence of  the various relations of each single respondent; and second, the fact that diverse kinds of variables may  be present. Variables can be attributes of individual respondents, of individual nominees, or of dyadic respondent-nominee relationships. Variables that refer, through an aggregation procedure, to the entire personal network, e.g.,  the number of  relations mentioned by  ego,  are considered here  as attributes of  ego. For  questions where the dependent variable as well  as the explanatory (independent)  variables are attributes of  the focal individual, traditional statistical methods, such as OLS regression analysis, can be used. Examples are studies of the size and composition of social networks, and studies of the effect of social support on health. For such questions, the unit of analysis is ego together with his personal network; characteristics of  the personal network can be included in the analysis by  aggregating characteristics of relations to the level of  the personal network. This procedure is  often followed, an example is Campbell and Lee (1992; see p.  1085). However, aggregation of  haracteristics of  relations to  the  level  of  the personal network is not always satisfactory, especially when the dependent variable is itself  a function of the personal network."
(.....je reviendrais là-dessus)


Réseau complet: population limitée, pour une relation donnée
(peut se representer par une graphe/multigraphe, simple/coloré/valué)




Question de la collecte des données


Les questions que j'ai (dans le cadre de mon mémoire) à propos de la collecte des données (qui choisir? quel réseau?) ne sont pas nouveaux. Quand "réseau social" ne se referait pas au numérique, la question s'est posé (même, encore plus?) de comment choisir ses participants.
Quelques possibilités:

  • Héran, (1987, 1988) "contacts entre les personnes" : (prendre des individus de façon aléatoire. pour chaque individu, demande qu'il enregistre tous ses personnes avec qui il entre en contacte, les caractéristiques de ces personnes et la nature de l'interaction)
  • Snijders, Spreen - inspiré par "random walk strategy"
    Problèmes:
    * Procédure s'est montré difficile à exécuter en France
    * Utilité de ces informations??!
  • Autres travaux de Snijders: sondage par boule de neige



mardi 20 mars 2012

Conférence au BPI, "Le parler jeunes. Un danger pour la langue française?"

Dans le cadre de la "semaine de la langue française", une conférence a été animé au BPI par Cyril Trimaille (avec Françoise Gadet, Maria Candea, Marie-Madeleine Bertucci et Boris Seguin) sur "Le parler des jeunes". Sous-titre: "Un danger pour la langue française?"

Une vidéo de la conférence a été transmis en direct vis le site web, et, si je ne me trompe pas, un enregistrement sera disponible dans les archives sonores de la BPI la semaine prochaine.

Ce contexte grand-public a été l'occasion de faire un tour rapide des filières de recherche qui prennent comme objet cette variation linguistique qu'on appel le "parler jeunes".

C'était aussi l'occasion pour des échanges entre universitaires et "grand public" - chose qui a, je crois, été bien enrichissement pour tout le monde.

Quelques commentaires entendus (est-ce que je les ai bien notés? on verra dans une semaine avec l'audio!):
"Je trouve ça pas très bien [...] la langue française est en déclin [...] c'est les chat est les sms"
"L'avenir de la langue française se trouve en Afrique"
"Si ma langue maternelle était l'anglais je serais plus inquiète" (ça, je n'ai pas compris..)

vendredi 16 mars 2012

Twitter-scraping with Python for Dummies (in Windows)

I'm ok with Python but it took me a while to get this set up, and all the "easy guides" seem to start from Linux.
Compiled from a couple of pages, and some trial and error.


You will need:




Step 1: Get your Twitter Api key
You will need to be a twitter user to get an api key. You will need an api key for some of the things you'll do later. You don't absolutely need to do this step right now but it's probably eaiser.
This explains the process pretty clearly When you're filling out the form, it doesn't matter what you put in the fields for "app name" and "website", etc.
You will also need the access token, so click on the button at the bottom of the page to get that.

Also, go into your settings (there should be a tab at the top of the page), scroll down to 'Application Type' and choose 'Read and Write'. This will mean you can update your twitter status, and things like that. (Then, obviously, scroll down and click on 'Update this Twitter application's settings')
If you'd already created your access token before doing this, you will need to re-do that to update it with the new permissions. Click 'Recreate my access token'.


Step 2: Download the python wrapper for the twitter api and its dependencies 
Open up a Command Prompt
( Start->Accessories->Command Prompt )
Type: cd c:\Python27\scripts  

Type:  easy_install simplejson
(wait. read what's on the screen - hopefully not an error)

Type: easy_install httplib2
(wait, etc)

Type: easy_install oauth2
(wait, etc)


Type: easy_install twitter
(wait, etc - and if that doesn't work, try: easy_install pip
then: pip install twitter )


You should now be good to go.



Step 2: Setting up the twitter api wrapper in python
Open up a Python shell window. You should get this if you go :
Start -> Programs -> Python27 -> IDLE (Python Gui)
It should look like this:


Type:  import twitter
(nothing happens)

Type: api = twitter.Api()
(nothing happens)

We're now referring to the official documentation here.

Type:  
api = twitter.Api(consumer_key='consumer_key', 
consumer_secret='consumer_secret', 
access_token_key='access_token', 
access_token_secret='access_token_secret')
- Except that where it says 'consumer_secret', 'access_token', etc (everything with the single quote marks), write in the Consumer Key / Consumer Secret / etc that you got in Step 1. Keep the quote marks.
Also, you don't need to press Enter between these lines, but it doesn't matter if you do.

To check that that has worked, type:
print api.VerifyCredentials()
When you press Enter you should get a bunch of text (hopefully not any errors).

What would be a good idea right now is to save this script, so that you don't have to go back and remember/retype all of that next time you want to work.
(In the Python Shell window,  File->Save)


Step 4: Try a few things out
(These are from the Google Code page):


allstatuses = api.GetPublicTimeline()
print [s.user.name for s in statuses]


statuses = api.GetUserTimeline("user")
(The username is text, so must be in quote marks)

friends = api.GetFriends("user")
print [f.name for f in friends]
(For list of people the user is "following")


and... away you go. full documentation here.