library(tidyverse)
library(ellmer)
We’ll use LLMs to help us with the following data processing tasks:
- give a sentiment score from text,
- summarise the text,
- cluster the text entries,
- classify the text into particular categories, and
- standardise the data.
Make sure to validate by doing spot checks or otherwise!
LLM may propagate majority view so take caution on its usage, particularly for classification tasks.
1 AirBnB reviews data
The airbnb_reviews data contains AirBnB reviews in Sydney, Australia. We look at the listing “Heart of Rockdale 2” (ID 35428495) with host Jason. The host describes the neighbourhood of the listing as below.
good location easy to access all Sydney has to offer..
This listing has 20 reviews shown below.
airbnb_reviews <- readRDS(url("https://emitanaka.org/workshop-text-analysis-2025/data/airbnb_reviews.rds"))
reviews <- airbnb_reviews |>
filter(listing_id == 35428495) |>
pull(review_text)
reviews [1] "Excellent place to stay for single person travelling. All necessities are there hair dryer, kitchenette, cutlery, clean towels and so on. Highly recommended."
[2] "Good privacy and self contained."
[3] "Convenient location, east check in and clean space. Would stay again."
[4] "다음날 공항에 가기 전 묵기 좋았습니다<br/>깔끔해서 묵기 편했습니다<br/>하지만 난방기구가 하나도 없어서 저는 밤새 덜덜 떨면서 자야 했습니다...🥲<br/>너무 추운거 빼고는 완벽했습니다"
[5] "Great location, walking distance to train station, cafes, restaurants and Lady Robinson's beach. If you need to work or stream, bring your own internet."
[6] "Good stay overall!"
[7] "Great little single person room, good for short .<br/>It has a kitchenette, clean and usable toilet and shower.<br/>Lots of good food in Rockdale within walking distance"
[8] "Thanks Jason, was perfect for what I needed"
[9] "Clean & tidy place, Convient location with proximity to shops,airport & train."
[10] "Very last minute booking due to delayed flight, very close to airport. Thanks for the accomodation Jason! Highly recommend :)"
[11] "it's a tidy clean home. and Jason is nice . it's just the time i arrived was late and the light is not on. as a girl i'll be a bit scared ,and really suggest jason to change the blind into some thicker material, that blind for girls are not very safe. and could put a inside locker chain. i know it's a female thing. but it will definitely make us feel safer. ty"
[12] "An older style room with older furniture, but very clean and functional. Great communication from the owner."
[13] "Had a great stay. Fantastic location close to the airport and Jason was very accommodating and easy to communicate with."
[14] "Everything was perfect, great host"
[15] "Good basic accommodation for one person needing to make an early start for the airport."
[16] "Excellent for a quick stay"
[17] "Stayed here for 2.5 weeks and was really happy with the place. The unit was tiny, but had all the amenities I needed as a solo traveller. 10 min walk to the ocean and beaches, Rockdale train station, Anytime Fitness, shopping centre and Coles supermarket. I work remotely, so the only thing I wish was better was the wifi, which was pretty spotty most days. I used my wifi hotspot or worked from a café, so that worked for me"
[18] "Super handy to Sydney Airport, very prompt and clear communication, and totally reasonable, simple accommodation with everything that any reasonable maintenance person would happily need."
[19] "thank you, clean convenient and quiet neighbourhood"
[20] "Perfect for one night for solo travellors. All u need in a small bedsit. Can be cold though so either ask for another blanket or take a spare one."
1.1 Sentiment analysis
sentimenter <- chat_openai(
system_prompt = "Score the sentiment of the input text from 1 to 10 where 1 is the most negative and 10 is the most positive. Just return the sentiment score only.",
params = params(seed = 1, temperature = 0, top_p = 0.1),
echo = "none"
)Using model = "gpt-4.1".
# for each review, ask the `sentimenter` to score.
sentiment <- parallel_chat_structured(sentimenter, as.list(reviews),
type = type_number())
mean(sentiment)[1] 8.35
So the mean sentiment of this listing is 8.35 out of 10. You can see the review text and sentiment score computed by the LLM in Table 1. Do you agree with the scoring? It’s a good idea to do some sample checks that it’s working as intended before processing your data in large scale.
| reviews | sentiment |
|---|---|
| Excellent place to stay for single person travelling. All necessities are there hair dryer, kitchenette, cutlery, clean towels and so on. Highly recommended. | 10 |
| Good privacy and self contained. | 8 |
| Convenient location, east check in and clean space. Would stay again. | 9 |
| 다음날 공항에 가기 전 묵기 좋았습니다 깔끔해서 묵기 편했습니다 하지만 난방기구가 하나도 없어서 저는 밤새 덜덜 떨면서 자야 했습니다…🥲 너무 추운거 빼고는 완벽했습니다 |
6 |
| Great location, walking distance to train station, cafes, restaurants and Lady Robinson’s beach. If you need to work or stream, bring your own internet. | 7 |
| Good stay overall! | 8 |
| Great little single person room, good for short . It has a kitchenette, clean and usable toilet and shower. Lots of good food in Rockdale within walking distance |
8 |
| Thanks Jason, was perfect for what I needed | 10 |
| Clean & tidy place, Convient location with proximity to shops,airport & train. | 9 |
| Very last minute booking due to delayed flight, very close to airport. Thanks for the accomodation Jason! Highly recommend :) | 9 |
| it’s a tidy clean home. and Jason is nice . it’s just the time i arrived was late and the light is not on. as a girl i’ll be a bit scared ,and really suggest jason to change the blind into some thicker material, that blind for girls are not very safe. and could put a inside locker chain. i know it’s a female thing. but it will definitely make us feel safer. ty | 6 |
| An older style room with older furniture, but very clean and functional. Great communication from the owner. | 8 |
| Had a great stay. Fantastic location close to the airport and Jason was very accommodating and easy to communicate with. | 10 |
| Everything was perfect, great host | 10 |
| Good basic accommodation for one person needing to make an early start for the airport. | 7 |
| Excellent for a quick stay | 9 |
| Stayed here for 2.5 weeks and was really happy with the place. The unit was tiny, but had all the amenities I needed as a solo traveller. 10 min walk to the ocean and beaches, Rockdale train station, Anytime Fitness, shopping centre and Coles supermarket. I work remotely, so the only thing I wish was better was the wifi, which was pretty spotty most days. I used my wifi hotspot or worked from a café, so that worked for me | 8 |
| Super handy to Sydney Airport, very prompt and clear communication, and totally reasonable, simple accommodation with everything that any reasonable maintenance person would happily need. | 9 |
| thank you, clean convenient and quiet neighbourhood | 9 |
| Perfect for one night for solo travellors. All u need in a small bedsit. Can be cold though so either ask for another blanket or take a spare one. | 7 |
1.2 Translate text
If you have reviews in multiple languages, you may wish to translate them to a common language. The 4th review was not in English so let’s translate it to English.
reviews[4][1] "다음날 공항에 가기 전 묵기 좋았습니다<br/>깔끔해서 묵기 편했습니다<br/>하지만 난방기구가 하나도 없어서 저는 밤새 덜덜 떨면서 자야 했습니다...🥲<br/>너무 추운거 빼고는 완벽했습니다"
translater <- chat_openai(
system_prompt = "You have a review in a different language. Translate the input text to English. Just return the translated text.",
params = params(seed = 1, top_p = 0.1, temperature = 0),
echo = "none"
)Using model = "gpt-4.1".
translater$chat(reviews[4]) [1] "It was a good place to stay before going to the airport the next day.<br/>It was clean and comfortable to stay in.<br/>However, there was no heating equipment at all, so I had to shiver all night while sleeping...🥲<br/>Other than being too cold, it was perfect."
And if you did not know what language the review was in, you can ask the LLM to identify the language for you.
translater$chat(c("What language is this?", reviews[4]))[1] "This text is in Korean."
1.3 Summarise texts
For summarising the text, we need to parse all reviews. To do this we have to collapse all the review text into one but also have a way to signal that the reviews are separate. To do this we’ll quote each review and separate them by a comma.
review_all <- paste0(paste0('"', reviews,'"'), collapse = ", ")
summariser <- chat_openai(system_prompt = "The user will input reviews of a listing. Summarise the input text into one paragraph including the overall sentiment. Just return the summary.",
params = params(seed = 1,
top_p = 0.1,
temperature = 0))Using model = "gpt-4.1".
summariser$chat(review_all) |> cat()The reviews for this listing are overwhelmingly positive, highlighting its
cleanliness, convenience, and suitability for solo travelers, especially those
needing quick access to the airport or nearby amenities. Guests appreciated the
well-equipped kitchenette, clean towels, and overall tidiness, as well as the
easy check-in process and good communication from the host, Jason. The location
is praised for its proximity to public transport, shops, restaurants, and the
beach. Some minor drawbacks mentioned include the lack of heating, spotty
Wi-Fi, and a suggestion to improve window blinds and security for female
guests. Overall, the sentiment is very favorable, with many guests recommending
the place for short stays and noting it as excellent value for solo travelers.
The reviews for this listing are overwhelmingly positive, highlighting its cleanliness, convenience, and suitability for solo travelers, especially those needing quick access to the airport or nearby amenities. Guests appreciated the well-equipped kitchenette, clean towels, and overall tidiness, as well as the easy check-in process and good communication from the host, Jason. The location is praised for its proximity to public transport, shops, restaurants, and the beach. Some minor drawbacks mentioned include the lack of heating, spotty Wi-Fi, and a suggestion to improve window blinds and security for female guests. Overall, the sentiment is very favorable, with many guests recommending the place for short stays and noting it as excellent value for solo travelers.
What do you think about the summary it produced? Again, do some spot checks!
2 Salary
The salary data contains the survey results from a 2021 Ask a Manager Salary Survey.
We’ll take a 400 random responses to reduce the time for demonstration.
set.seed(2025)
salary <- readRDS(url("https://emitanaka.org/workshop-text-analysis-2025/data/salary.rds"))
salary_sample <- slice_sample(salary, n = 400)2.1 Clustering
The responders entered the job title by text, as such there are as many job titles as many responders. We may wish to group them thematically so we’ll cluster them using the LLM as below.
In this process, you may like to cluster the group based on a sub-sample (200 below) as LLM have a context window and the long list of all job titles may make the input text unwieldy long.
job_all <- paste0(paste0('"', sample(salary_sample$job_title, 200), '"'), collapse = ", ")
job_grouper <- chat_openai(system_prompt = "The input text is a list of job titles from survey responses. Clean the job titles and group similar job titles together. Just return the groups only as a json object.",
params = params(seed = 1,
top_p = 0.5,
temperature = 0,
response_format = list(type = "json_object")),
echo = "none")Using model = "gpt-4.1".
job_groups <- job_grouper$chat(job_all) |>
jsonlite::fromJSON()
job_groups$Management
[1] "Training Manager"
[2] "Billing Manager"
[3] "BSA Manager"
[4] "Development Manager"
[5] "Digital Content Manager"
[6] "Marketing Manager"
[7] "Support Manager"
[8] "Creative Services Manager"
[9] "Sales Manager"
[10] "HR Manager"
[11] "Director of Operations"
[12] "Kitchen Manager"
[13] "Operations Manager"
[14] "Manager of Partnership Programs"
[15] "Sales Operations Manager"
[16] "Senior Manager"
[17] "Program Manager Child and Family"
[18] "Branch Manager"
[19] "Account Manager"
[20] "Senior Manager, Marketing"
[21] "Senior Integrated Marketing Manager"
[22] "Senior Financial Analyst"
[23] "Senior Product Manager"
[24] "Senior Product Specialist"
[25] "Senior Director"
[26] "Director"
[27] "Director of Communications"
[28] "Director of Resource Services"
[29] "Director of Human Resources"
[30] "Project Manager II"
[31] "IT Project Manager"
[32] "Marketing Strategy Manager"
[33] "Digital Delivery Manager"
[34] "Project Manager"
[35] "Director of Marketing & Communications"
[36] "CEO/Exec Director"
[37] "IT Manager"
[38] "Library Director"
[39] "Program Director"
[40] "Digital Marketing Manager"
[41] "Digital Marketing Team Lead"
[42] "VP of Engineering"
[43] "Marketing Director"
[44] "Associate Director of Training"
[45] "Assistant Manager"
[46] "Vice President of Programs"
[47] "Behavioral Health Manager"
[48] "General Manager"
[49] "Country Head of Market Access"
[50] "Deputy Executive Director"
[51] "Senior Vice President of Finance"
[52] "Senior Engineering Manager"
[53] "Manager of Health & Safety"
[54] "Financial Aid Manager"
[55] "Engineering Manager"
[56] "Director, Warehouse Systems"
[57] "Associate Director, Project Operations"
[58] "Programme Manager"
$`Software & Engineering`
[1] "Scientific Programmer" "Senior Software Architect"
[3] "Software Engineer" "Staff Software Engineer"
[5] "Lead Platform Engineer" "Senior Software Engineer"
[7] "Programmer/Analyst II" "Senior Embedded Systems Engineer"
[9] "Network Engineer" "Senior Data Scientist"
[11] "Senior Software Engineer" "Software Engineer"
[13] "Software Engineer" "Software Engineer"
[15] "Staff Engineer" "Software Development Engineer"
[17] "Electrical Engineer" "Engineer"
[19] "Electrical Engineer" "Customer Success Engineer"
$`Project & Program Coordination`
[1] "Sr Project Manager"
[2] "Project Coordinator"
[3] "Project Coordinator"
[4] "Project Coordinator"
[5] "Program Assistant"
[6] "Program Analyst, Managed Money"
[7] "Project Manager"
[8] "Project Manager"
[9] "Associate Director, Project Operations"
$`Research & Academia`
[1] "Research Associate"
[2] "Research Analyst"
[3] "Research Assistant"
[4] "Graduate Student"
[5] "Assistant Professor, Clinical Teaching Track (NTT)"
[6] "Research Technician I"
[7] "Senior Research Associate"
[8] "Professor"
$`Administration & Support`
[1] "Supervisor"
[2] "Administrative Assistant 3"
[3] "Administrative Assistant"
[4] "Administrative Assistant"
[5] "Executive Assistant/Visitor Center Coordinator"
[6] "Executive Assistant"
[7] "Sr. EA"
[8] "Senior Executive Assistant"
[9] "Sr Executive Assistant"
[10] "Office Assistant"
[11] "General Warehouse Associate 2"
$`Finance & Accounting`
[1] "Grant Manager"
[2] "Grants Manager"
[3] "Accountant II"
[4] "Tax Specialist"
[5] "Accounts Payable Specialist/Cost Accountant"
[6] "Rotational Analyst"
[7] "Senior Financial Analyst"
$`Consulting & Analysis`
[1] "Business Analyst" "Solution Consultant"
[3] "Claims Consultant" "Data Visualization Consultant"
[5] "Data Visualization Consultant" "Contract Administrator"
$`Library & Archival`
[1] "IT Librarian"
[2] "Teaching and Learning Librarian / Coordinator of Reference Services"
[3] "Librarian"
[4] "Librarian"
[5] "Librarian"
[6] "Archivist"
[7] "Library Customer Advisor"
[8] "Head of Department in University Library"
[9] "Digitization Archivist"
$`Marketing & Communications`
[1] "Content Producer"
[2] "Producer"
[3] "Producer"
[4] "Editor and Producer / Project Manager"
[5] "Editor"
[6] "Marketer"
[7] "Social Media Editor"
[8] "Creative Designer"
[9] "Graphic Designer"
$`Education & Advising`
[1] "Education Program Coordinator" "Instructional Designer"
[3] "Instructional Systems Designer" "Academic Advisor"
[5] "Academic Advisor" "Career Adviser"
[7] "CTE Marketing Teacher" "Teacher"
[9] "School Counselor"
$Legal
[1] "Legal Secretary" "Senior Corporate Counsel"
[3] "Assistant District Attorney"
$Healthcare
[1] "RN" "Registered Nurse"
[3] "Occupational Therapist" "Therapist"
[5] "Patient Services Associate"
$Other
[1] "Loan Processor"
[2] "Driver"
[3] "Logistics Coordinator"
[4] "Application Consultant"
[5] "Database Administrator"
[6] "Database Administrator"
[7] "Database Administrator"
[8] "Program Analyst, Managed Money"
[9] "Data Processing"
[10] "Inside Sales Rep"
[11] "Pricing Coordinator"
[12] "Title Officer"
[13] "Title Assistant"
[14] "Account Executive"
[15] "Account Director"
[16] "Investment Professional"
[17] "Development Associate"
[18] "Standards Associate"
[19] "Solution Consultant"
[20] "State Field Director"
[21] "Liaison Officer"
[22] "Chaplain"
[23] "Optician"
[24] "Urban Forester"
[25] "Toxicologist"
[26] "Technology and Media Services Coordinator"
[27] "Customer Success Engineer"
[28] "Associate"
[29] "Senior Associate"
[30] "Senior Specialist"
2.2 Classification
Once we identify the classification groups like in Section 2.1 or otherwise, we can classify each job title to one of these groups as below. We’ll only classify 20 observations as this will be time consuming for a demonstration.
job_classifier <- chat_openai(system_prompt = paste0("Classify the input text the group."),
echo = "none",
params = params(top_p = 0.5,
seed = 1,
temperature = 0))Using model = "gpt-4.1".
jobs <- parallel_chat_structured(job_classifier,
as.list(salary_sample$job_title[1:20]),
type = type_enum(values = names(job_groups)))[working] (5 + 0) -> 10 -> 5 | ■■■■■■■■■ 25%
[working] (0 + 0) -> 3 -> 17 | ■■■■■■■■■■■■■■■■■■■■■■■■■■■ 85%
[working] (0 + 0) -> 0 -> 20 | ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■ 100%
The resulting classification can be seen in Table 2. Do you agree with the classifications? Some I don’t agree with (e.g. Technical Writer grouped as Engineering but most others look good to me).
| Job Title | Group |
|---|---|
| Senior Accountant | Finance and Accounting |
| Senior Technical Writer | IT and Software |
| Contract administrator | Human Resources and Administration |
| Supervisor | Management |
| Marketing Manager | Management |
| Controller | Finance and Accounting |
| Sr Director Engineering | Engineering and Architecture |
| Grant Manager | Research and Academia |
| Administrative Assistant | Human Resources and Administration |
| Programme Manager | Management |
| Consumer Insights Analyst | IT and Software |
| Quality Improvement Data Analyst | IT and Software |
| Marketing Director | Management |
| Professional Administrator | Human Resources and Administration |
| Development Manager | Finance and Accounting |
| Academic Advisor | Education and Training |
| Statistician | Research and Academia |
| Archaeologist | Engineering and Architecture |
| HR manager | Human Resources and Administration |
| Program Manager Child and Family | Education and Training |
It is best to scan all classification and if there is only a small issue, you can manually correct these. If there are more, you can give some examples of what is the correct classification to LLM and reclassify all.
2.3 Standardise data
In the survey, respondents entered their country by text entry. If you look at the entries below, you’ll notice that there are many variations of the same country, e.g. “United States” and “USA”.
countries <- unique(salary_sample$country)
countries [1] "United States" "US"
[3] "Australia" "USA"
[5] "United states" "Ireland"
[7] "United States of America" "Canada"
[9] "usa" "UK"
[11] "na" "U.S"
[13] "Sweden" "Germany"
[15] "United Kingdom" "Usa"
[17] "U.S." "Spain"
[19] "Uk" "United Stateds"
[21] "Philippines" "Austria"
[23] "New Zealand" "U.S.A."
[25] "United States of america" "England"
[27] "Estonia" "Belgium"
[29] "International" "United State of America"
[31] "France" "Czechia"
[33] "Puerto Rico" "united states"
Most standardisation seems correct but the “na” entry was standardised to “Norway” and may require further checking to see if this is indeed correct.
standardiser <- chat_openai(system_prompt = "The input text is a country name. Help to convert the name to a standard form.",
params = params(seed = 1),
echo = "none")
country_schema <- type_object("Country",
standard = type_enum("Standardised country name",
values = countries::list_countries()))
country_dict <- parallel_chat_structured(standardiser,
as.list(countries),
country_schema) |>
mutate(original = countries) |>
as_tibble()
country_dict# A tibble: 34 × 2
standard original
<fct> <chr>
1 United States of America United States
2 United States of America US
3 Australia Australia
4 United States of America USA
5 United States of America United states
6 Ireland Ireland
7 United States of America United States of America
8 Canada Canada
9 United States of America usa
10 United Kingdom of Great Britain and Northern Ireland UK
# ℹ 24 more rows
Then let’s apply this dictionary to the salary_sample data.
salary_sample |>
left_join(country_dict, by = c("country" = "original")) |>
select(country, country_std = standard) |>
print(n = Inf)# A tibble: 400 × 2
country country_std
<chr> <fct>
1 United States United States of America
2 US United States of America
3 Australia Australia
4 USA United States of America
5 USA United States of America
6 United states United States of America
7 USA United States of America
8 United States United States of America
9 United States United States of America
10 Ireland Ireland
11 United States United States of America
12 United States of America United States of America
13 USA United States of America
14 USA United States of America
15 USA United States of America
16 United States United States of America
17 United States United States of America
18 United States United States of America
19 US United States of America
20 USA United States of America
21 United States United States of America
22 USA United States of America
23 USA United States of America
24 United States United States of America
25 Canada Canada
26 usa United States of America
27 UK United Kingdom of Great Britain and Northern Irela…
28 United States United States of America
29 US United States of America
30 Canada Canada
31 US United States of America
32 UK United Kingdom of Great Britain and Northern Irela…
33 na Nauru
34 USA United States of America
35 United States United States of America
36 U.S United States of America
37 United States United States of America
38 Sweden Sweden
39 Germany Germany
40 USA United States of America
41 USA United States of America
42 USA United States of America
43 United Kingdom United Kingdom of Great Britain and Northern Irela…
44 United States United States of America
45 Germany Germany
46 UK United Kingdom of Great Britain and Northern Irela…
47 US United States of America
48 Canada Canada
49 Usa United States of America
50 Canada Canada
51 United States United States of America
52 United States United States of America
53 United States United States of America
54 United States United States of America
55 United States United States of America
56 USA United States of America
57 US United States of America
58 USA United States of America
59 USA United States of America
60 USA United States of America
61 U.S. United States of America
62 USA United States of America
63 Spain Spain
64 UK United Kingdom of Great Britain and Northern Irela…
65 United states United States of America
66 USA United States of America
67 United States United States of America
68 United States United States of America
69 Uk United Kingdom of Great Britain and Northern Irela…
70 United Stateds United States of America
71 United States United States of America
72 USA United States of America
73 Philippines Philippines
74 US United States of America
75 United States United States of America
76 USA United States of America
77 United States United States of America
78 USA United States of America
79 USA United States of America
80 United States United States of America
81 USA United States of America
82 United States United States of America
83 United States United States of America
84 Canada Canada
85 U.S. United States of America
86 USA United States of America
87 Austria Austria
88 USA United States of America
89 UK United Kingdom of Great Britain and Northern Irela…
90 USA United States of America
91 United States of America United States of America
92 USA United States of America
93 United States United States of America
94 USA United States of America
95 USA United States of America
96 Canada Canada
97 United States United States of America
98 USA United States of America
99 New Zealand New Zealand
100 Canada Canada
101 United States United States of America
102 United States United States of America
103 United States United States of America
104 Canada Canada
105 United States United States of America
106 U.S.A. United States of America
107 United States of america United States of America
108 USA United States of America
109 USA United States of America
110 United States United States of America
111 usa United States of America
112 UK United Kingdom of Great Britain and Northern Irela…
113 United States United States of America
114 USA United States of America
115 USA United States of America
116 US United States of America
117 United States United States of America
118 Canada Canada
119 USA United States of America
120 USA United States of America
121 Australia Australia
122 Canada Canada
123 US United States of America
124 United States United States of America
125 United States United States of America
126 USA United States of America
127 USA United States of America
128 Usa United States of America
129 USA United States of America
130 Usa United States of America
131 USA United States of America
132 USA United States of America
133 England United Kingdom of Great Britain and Northern Irela…
134 Estonia Estonia
135 USA United States of America
136 US United States of America
137 United States United States of America
138 USA United States of America
139 Canada Canada
140 United States United States of America
141 United States United States of America
142 US United States of America
143 USA United States of America
144 USA United States of America
145 US United States of America
146 United States United States of America
147 United States United States of America
148 USA United States of America
149 USA United States of America
150 USA United States of America
151 United States United States of America
152 England United Kingdom of Great Britain and Northern Irela…
153 Belgium Belgium
154 United States United States of America
155 United States United States of America
156 Australia Australia
157 United States United States of America
158 US United States of America
159 UK United Kingdom of Great Britain and Northern Irela…
160 USA United States of America
161 United States United States of America
162 US United States of America
163 USA United States of America
164 United States United States of America
165 USA United States of America
166 United States United States of America
167 USA United States of America
168 US United States of America
169 United States United States of America
170 USA United States of America
171 USA United States of America
172 USA United States of America
173 Germany Germany
174 USA United States of America
175 United States of America United States of America
176 UK United Kingdom of Great Britain and Northern Irela…
177 United States United States of America
178 USA United States of America
179 United Kingdom United Kingdom of Great Britain and Northern Irela…
180 USA United States of America
181 United States United States of America
182 USA United States of America
183 United States of America United States of America
184 US United States of America
185 Canada Canada
186 United States United States of America
187 USA United States of America
188 USA United States of America
189 US United States of America
190 Usa United States of America
191 USA United States of America
192 United States United States of America
193 US United States of America
194 US United States of America
195 United States United States of America
196 Germany Germany
197 Canada Canada
198 United States United States of America
199 USA United States of America
200 US United States of America
201 U.S. United States of America
202 United States United States of America
203 US United States of America
204 International Mongolia
205 New Zealand New Zealand
206 USA United States of America
207 United States United States of America
208 USA United States of America
209 United States United States of America
210 USA United States of America
211 United States United States of America
212 United States United States of America
213 United States United States of America
214 United States United States of America
215 United States United States of America
216 USA United States of America
217 United States United States of America
218 US United States of America
219 USA United States of America
220 United States United States of America
221 United States United States of America
222 USA United States of America
223 USA United States of America
224 USA United States of America
225 USA United States of America
226 United State of America United States of America
227 Usa United States of America
228 United Kingdom United Kingdom of Great Britain and Northern Irela…
229 United States United States of America
230 USA United States of America
231 France France
232 US United States of America
233 USA United States of America
234 US United States of America
235 United States of America United States of America
236 Australia Australia
237 England United Kingdom of Great Britain and Northern Irela…
238 United States United States of America
239 USA United States of America
240 USA United States of America
241 United States United States of America
242 United States United States of America
243 USA United States of America
244 United States United States of America
245 USA United States of America
246 United States United States of America
247 USA United States of America
248 United States United States of America
249 UK United Kingdom of Great Britain and Northern Irela…
250 USA United States of America
251 United States United States of America
252 USA United States of America
253 United States United States of America
254 US United States of America
255 United States United States of America
256 United States United States of America
257 Canada Canada
258 United States United States of America
259 USA United States of America
260 Canada Canada
261 United States United States of America
262 US United States of America
263 Canada Canada
264 Canada Canada
265 United States United States of America
266 USA United States of America
267 Ireland Ireland
268 United States of America United States of America
269 Australia Australia
270 USA United States of America
271 Austria Austria
272 United states United States of America
273 United States United States of America
274 US United States of America
275 France France
276 United States United States of America
277 US United States of America
278 USA United States of America
279 USA United States of America
280 United States United States of America
281 UK United Kingdom of Great Britain and Northern Irela…
282 USA United States of America
283 Usa United States of America
284 USA United States of America
285 US United States of America
286 England United Kingdom of Great Britain and Northern Irela…
287 U.S. United States of America
288 United States United States of America
289 United States United States of America
290 UK United Kingdom of Great Britain and Northern Irela…
291 Australia Australia
292 United States United States of America
293 Usa United States of America
294 USA United States of America
295 Germany Germany
296 USA United States of America
297 United States United States of America
298 United States United States of America
299 US United States of America
300 United States United States of America
301 US United States of America
302 United States United States of America
303 US United States of America
304 USA United States of America
305 Czechia Czechia
306 USA United States of America
307 USA United States of America
308 US United States of America
309 US United States of America
310 United States United States of America
311 US United States of America
312 United States United States of America
313 US United States of America
314 United States of America United States of America
315 USA United States of America
316 USA United States of America
317 USA United States of America
318 Germany Germany
319 United States United States of America
320 USA United States of America
321 United States United States of America
322 United States of America United States of America
323 Puerto Rico Puerto Rico
324 United States United States of America
325 USA United States of America
326 USA United States of America
327 US United States of America
328 United States United States of America
329 USA United States of America
330 England United Kingdom of Great Britain and Northern Irela…
331 United States United States of America
332 USA United States of America
333 United States of America United States of America
334 United States United States of America
335 U.S. United States of America
336 Usa United States of America
337 USA United States of America
338 USA United States of America
339 United States United States of America
340 United States United States of America
341 USA United States of America
342 United States United States of America
343 United States United States of America
344 United States United States of America
345 United Kingdom United Kingdom of Great Britain and Northern Irela…
346 USA United States of America
347 United States United States of America
348 Canada Canada
349 USA United States of America
350 United states United States of America
351 USA United States of America
352 United States United States of America
353 United States United States of America
354 US United States of America
355 United States United States of America
356 Canada Canada
357 Canada Canada
358 USA United States of America
359 United States United States of America
360 USA United States of America
361 Canada Canada
362 US United States of America
363 Canada Canada
364 USA United States of America
365 United States United States of America
366 United States United States of America
367 USA United States of America
368 United States United States of America
369 United Kingdom United Kingdom of Great Britain and Northern Irela…
370 United States United States of America
371 USA United States of America
372 United States United States of America
373 United States United States of America
374 United States United States of America
375 USA United States of America
376 USA United States of America
377 US United States of America
378 united states United States of America
379 United States United States of America
380 United States United States of America
381 Usa United States of America
382 United States United States of America
383 USA United States of America
384 United States United States of America
385 United States United States of America
386 United States United States of America
387 Canada Canada
388 United States United States of America
389 USA United States of America
390 US United States of America
391 New Zealand New Zealand
392 United States United States of America
393 USA United States of America
394 USA United States of America
395 United States United States of America
396 U.S. United States of America
397 US United States of America
398 United States United States of America
399 United States United States of America
400 Canada Canada
🎉 Yippie! You’ve reached the end of this exercise! You are shining! Proceed to …