Chu_Karen_PhonAcquisition
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
This model is a computational implementation of the Speech Learning Model of bilingual acquisition of phonetic categories (Flege, 1995). Category prototypes and language exemplars are modeled as agents within the 2D phonetic space. Language exposure is modeled as addition of new exemplars to the space, and category acquisition is modeled as shifting of L1 categories due to equivalence classification, or creation of new L2 category prototypes. Three user-controlled behavioral are included in the implementation.
HOW IT WORKS
The initialization of the phonetic space is as follows:
1) Create n initial bilingual L1 category prototypes with random locations (n is user-specified).
2) Each bilingual L1 prototype hatches a monolingual L1 prototype.
3) Each bilingual L1 prototype populates itself with m attached exemplars distributed normally around its location (m is user-specified).
4) Newly hatched exemplars link themselves and their category prototype.
5) Exemplars also link themselves with their prototype's corresponding monolingual L1 prototype.
At each timestep, the phonetic space changes according to the specified agent behavior rules:
1) Create a new randomly located L1 exemplar:
- The new L1 exemplar identifies the nearest bilingual L1 prototype (i.e., distance ? cluster-max of that prototype). The exemplar joins that prototype's category by setting the prototype as its leader and creating a link between itself and the prototype.
- The exemplar identifies the nearest monolingual L1 prototype and creates a link between itself and the prototype.
- The L1 exemplar asks both of its newly linked L1 prototypes to increment their cluster-size by one.
2) Create a new randomly located L2 exemplar:
- The new L2 exemplar checks to see if it is located within the maximum radius of the nearest existing bilingual L1 or L2 prototype. If so, then it joins that prototype's category, sets that prototype as its leader, and links itself to the prototype.
- If the exemplar is not located within the bounds of an existing category cluster, it will proceed to hatch a new L2 prototype at the current location, set that prototype as its leader, and link itself to the new L2 prototype. This essentially forms a new phonetic category distinct from existing L1 and L2 categories.
- The L2 exemplar then asks its now-leader to increment cluster-size by one.
3) Each prototype agent updates its location, cluster-max parametr, and deviation parameter (if applicable) given the newly added L1 and L2 exemplars:
- The centroid of each cluster is recalculated (using locations of exemplars linked with the prototype), and the prototype agent changes its location to match the centroid if necessary.
- Each prototype agent updates its cluster-max value to be the larger of either the distance from the farthest linked exemplar or the user-specified minimum value.
- Bilingual L1 prototypes recalculate their distance from their corresponding monolingual L1 prototype and update the value of the deviation parameter if necessary.
4) The plot of average deviation values is updated.
HOW TO USE IT
The behavior of the model can be manipulated using three user-defined parameters:
init-cluster: The number of L1 exemplars with which each L1 prototype is populated during initialization. This represents a speaker's level of experience with their L1. Having more initial exemplars corresponds to more language experience (having had more exposure to L1 input), while having fewer exemplars corresponds to less language experience. Because ease and success of L2 acquisition has been shown to be related to how well-established the L1 categories are, this parameter allows us to model varying degrees of L1 establishment.
initial-categories: The number of L1 prototypes. Languages around the world vary in terms of how many phonetic categories exist. For example, while English has 14 vowels in its inventory, Spanish has only 5. This parameter allows us to model this specific feature of languages and observe how it influences on L2 category formation patterns.
min-cluster-max: The minimum value a prototype's cluster-max parameter is allowed to have. This reflects how small or large an area of influence any category must minimally have, and correlates with the speaker's likelihood of categorizing a sound as either foreign or non-speech. This measure is partially language-determined and also individual-determined. Variations in this likelihood could manifest in how easily or well any given person acquires their L2. This parameter models the influence of this likelihood on L2 category learning.
Define these three parameters using the provided sliders.
The setup button initializes a phonetic space with the specified number of L1 categories and initial cluster size.
The go button starts the acquisition process. Press the go button a second time to stop the process.
To observe the acquisition process step-by-step, use the step button.
Monitors for number of L2 categories formed and average bilingual-monolingual deviation are provided.
A plot of the average bilingual-monolingual deviation over the course of a run is also provided.
THINGS TO NOTICE
Try manipulating each of the behavioral parameters individually. What effect does each one have on the evolution of the phonetic space?
Are there certain combinations of parameters that result in no L2 categories?
What settings might maximize or minimize bilingual-monolingual deviation?
THINGS TO TRY
Try moving around the sliders for the behavioral parameters!
What happens when you take them to extremes? What happens if more than one is at an extreme?
EXTENDING THE MODEL
In the current implementation, a new L2 category is formed by a single exemplar that lies outside existing categories. Is this realistic? How could you modify the model to make this more true to real life? Perhaps there needs to be a critical mass of exemplars before a new category can form?
What other linguistic behavioral parameters can you think of? What might they do, and what aspects of language could they model?
What about multilinguals (more than 2 languages)?
NETLOGO FEATURES
This model makes liberal use of breeds and link-breeds to represent the exemplars and prototypes for the two languages.
RELATED MODELS
Language Change
CREDITS AND REFERENCES
Flege, J. E. (1995). __Second-language speech learning: Theory, findings, and problems,__ in Speech Perception and Linguistic Experience: Issues in Cross-language Research, edited by W. Strange (York, Timonium, MD), pp. 233_272.
Model written by Karen L. Chu, Northwestern University EECS 372/472, Spring 2011.
Comments and Questions
breed [L1s L1] ;bilingual L1 prototypes breed [L2s L2] ;L2 prototypes breed [exemplar1s exemplar1] ;L1 exemplars breed [exemplar2s exemplar2] ;L2 exemplars breed [pureL1s pureL1] ;monolingual L1 prototypes undirected-link-breed [leads lead] ;links between exemplars and prototypes undirected-link-breed [corrs corr] ;links between corresponding bilingual and monolingual L1 prototypes L1s-own [ cluster-max ;distance to farthest exemplar cluster-size ;number of exemplars in cluster deviation ;distance to corresponding monolingual prototype ] L2s-own [ cluster-max cluster-size ] pureL1s-own [ cluster-max cluster-size ] exemplar1s-own [ leader ;prototype of category ] exemplar2s-own [ leader ] to setup ca set-default-shape turtles "circle" create-L1s initial-categories [ set size 2 set color blue setxy random-xcor random-ycor set cluster-max min-cluster-max set cluster-size 1 ] ask L1s [create-pure] ask L1s [init-distro] update-links update-L do-plots end to go add-exemplar1 add-exemplar2 move-L update-links update-L do-plots end ; create monolingual L1 prototypes to create-pure ;;L1 method hatch-pureL1s 1 [ set size 2 set color violet set cluster-max min-cluster-max set cluster-size 1 create-corr-with myself [set color orange] ] end ; create initial exemplar population of L1 categories to init-distro ;;L1 method hatch-exemplar1s init-cluster [ set size 1 let newx (random-normal [xcor] of myself 5) let newy (random-normal [ycor] of myself 5) if newx < min-pxcor [set newx min-pxcor + 1] if newx >= max-pxcor [set newx max-pxcor - 1] if newy < min-pycor [set newy min-pycor + 1] if newy >= max-pycor [set newy max-pycor - 1] setxy newx newy set color pink set leader myself create-lead-with min-one-of pureL1s [distance myself] [set color yellow] ;linking to monolingual L1 prototypes ] set cluster-size init-cluster end ; update cluster-max value to update-L ask turtles with [breed = L1s or breed = L2s] [ let maxn max-one-of lead-neighbors [distance myself] ifelse maxn != nobody and (distance maxn) >= min-cluster-max [ set cluster-max distance maxn ] [ set cluster-max min-cluster-max ] ] end ; add a new L1 exemplar to add-exemplar1 create-exemplar1s 1 [ set color pink setxy random-xcor random-ycor set leader min-one-of L1s [distance myself] ask leader [set cluster-size cluster-size + 1] ask min-one-of pureL1s [distance myself] [ ; linking to monolingual L1 prototypes create-lead-with myself [set color yellow] set cluster-size cluster-size + 1 ] ] end ; add a new L2 exemplar to add-exemplar2 create-exemplar2s 1 [ set color red setxy random-xcor random-ycor let candidate min-one-of turtles with [breed = L1s or breed = L2s] [distance myself] ifelse distance candidate < 0.95 * [cluster-max] of candidate [ set leader candidate ] [ ; if outside existing category, form a new L2 category hatch-L2s 1 [ set size 2 set color green set cluster-size 1 set cluster-max min-cluster-max ask myself [set leader myself] ] ] ask leader [set cluster-size cluster-size + 1] ] end ; update prototype locations based on exemplars in category to move-L ask turtles with [breed = L1s or breed = L2s or breed = pureL1s] [ if cluster-size > 2 [ let xsum 0 let ysum 0 set xsum mean [xcor] of lead-neighbors set ysum mean [ycor] of lead-neighbors if xsum < min-pxcor [set xsum min-pxcor] if xsum >= max-pxcor [set xsum max-pxcor] if ysum < min-pycor [set ysum min-pycor] if ysum >= max-pycor [set ysum max-pycor] setxy xsum ysum ] ] ; update monolingual-bilingual deviation ask turtles with [breed = L1s] [ let minpure min-one-of corr-neighbors [distance myself] set deviation distance minpure ] end ; update exemplar-prototype links to update-links ask exemplar1s [create-lead-with leader] ask exemplar2s [create-lead-with leader] end to do-plots set-current-plot "Deviations" set-current-plot-pen "dev" plot mean([deviation] of L1s) end to-report absolute-value [number] ifelse number >= 0 [ report number ] [ report (- number) ] end
There are 4 versions of this model.
Attached files
No files
This model does not have any ancestors.
This model does not have any descendants.