Friday, August 28, 2009
Paul Rosenbloom explains SOAR
And another video where John Laird talks about Soar's extensions e.g. declarative memory, emotions, and reinforcement learning.
Wednesday, August 26, 2009
ORA report on the Union of All Social Networks in CCK08 Moodle Forums
ORA ALL-MEASURES REPORT ON THE UNION OF ALL SOCIAL NETWORKS IN THE CCK08 MOODLE FORUMS
I can't really interpret all of these values because I haven't gotten around reading the ORA manuals yet. Also, the reader should take note that ORA is a "risk assessment tool for locating individuals or groups that are potential risks given social, knowledge and task network information. (CASOS, http://www.casos.cs.cmu.edu/projects/ora/)"Download report in html & text format: http://www.mediafire.com/file/ifxy2zmmizm/cck08_ora_report.zip
Input data: Meta Network
Start time: Tue Aug 25 21:03:04 2009
COMMUNICATION RISK
The risk based on the level of communication and the authority structure of the organization. Are agents able to effectively communicate to accurately complete tasks? Is communication too centralized or decentralized? Do agents have recourse to managers to settle disputes?
Network Level Measure Value Average Distance 3.18015 Agent x Agent Clustering Coefficient/Watts-Strogatz 0.151525 Agent x Agent Component Count/Strong 253 Agent x Agent Component Count/Weak 128 Agent x Agent Connectedness 0.568498 Agent x Agent Density 0.00808805 Agent x Agent Diameter 537 Agent x Agent Efficiency 0.98408 Agent x Agent Efficiency/Global 0.208385 Agent x Agent Efficiency/Local 0.263409 Agent x Agent Fragmentation 0.431502 Agent x Agent Hierarchy 0.48668 Agent x Agent Link Count/Lateral 1.02105 Agent x Agent Link Count/Skip 0.901203 Agent x Agent Network Centralization/Betweenness 0.0695023 Agent x Agent Network Centralization/Closeness 0.00309231 Agent x Agent Network Centralization/In Degree 0.53284 Agent x Agent Network Centralization/Out Degree 0.523494 Agent x Agent Network Centralization/Total Degree 0.529156 Agent x Agent Network Levels 7 Agent x Agent Span Of Control 12.7104 Agent x Agent Speed/Average 0.31445 Agent x Agent Speed/Minimum 0.142857 Agent x Agent Transitivity 0.217969 Agent x Agent Upper Boundedness 0.977557 Agent x Agent
Node Level Measure Avg Stddev Min/Max Min/Max Nodes Centrality/Betweenness 0.00161891 0.00634868 0 278 nodes (51%) have this value AA:Agent x Agent 0.070992 v481 Centrality/Closeness 0.0040285 0.00177681 0.0018622 202 nodes (37%) have this value AA:Agent x Agent 0.00557034 v409 Centrality/Eigenvector 0.0018622 0.00743711 0 132 nodes (24%) have this value AA:Agent x Agent 0.0811172 v67 Centrality/In Degree 0.0147934 0.0500608 0 161 nodes (29%) have this value AA:Agent x Agent 0.546642 v67 Centrality/Information 0.00186219 0.00147853 0 202 nodes (37%) have this value AA:Agent x Agent 0.00303777 v80 Centrality/Inverse Closeness 0.138362 0.117661 0 202 nodes (37%) have this value AA:Agent x Agent 0.374534 v67 Centrality/Out Degree 0.0147934 0.0483358 0 202 nodes (37%) have this value AA:Agent x Agent 0.537313 v67 Centrality/Total Degree 0.0147934 0.0485165 0 123 nodes (22%) have this value AA:Agent x Agent 0.541978 v67 Clique Count 8.04655 30.9861 0 292 nodes (54%) have this value AA:Agent x Agent 329 v481 Clustering Coefficient/Watts-Strogatz 0.151525 0.225344 0 289 nodes (53%) have this value AA:Agent x Agent 1 14 nodes (2%) have this value Constraint/Burt 0.212882 0.291654 0 202 nodes (37%) have this value AA:Agent x Agent 1 48 nodes (8%) have this value Effective Network Size/Burt 7.76709 26.0472 0 200 nodes (37%) have this value AA:Agent x Agent 293.096 v67 Node Levels 3.42831 2.8018 0 202 nodes (37%) have this value AA:Agent x Agent 7 30 nodes (5%) have this value Simmelian Ties 0.00293921 0.00969906 0 431 nodes (80%) have this value AA:Agent x Agent 0.0783582 v67
CRITICAL EMPLOYEE RISK
The risk based on employees having exclusive knowledge, resources access, or task assignments. Would the removal of one or two employees from the organization greatly affect its ability to complete tasks? Do employees tend to have exclusive access to knowledge or resources?
Network Level Measure Value Fragmentation 0.431502 Agent x Agent
Node Level Measure Avg Stddev Min/Max Min/Max Nodes Boundary Spanner 0.106145 0.308023 0 480 nodes (89%) have this value AA:Agent x Agent 1 57 nodes (10%) have this value Cognitive Demand 0.00807299 0.0170032 0 202 nodes (37%) have this value 0.143389 v67 Constraint/Burt 0.212882 0.291654 0 202 nodes (37%) have this value AA:Agent x Agent 1 48 nodes (8%) have this value Effective Network Size/Burt 7.76709 26.0472 0 200 nodes (37%) have this value AA:Agent x Agent 293.096 v67 Interlockers 0.0577281 0.233229 0 506 nodes (94%) have this value AA:Agent x Agent 1 31 nodes (5%) have this value Radials 0 0 0 all nodes have equal value AA:Agent x Agent 0 Shared Situation Awareness 0.0018622 0.0124332 0 241 nodes (44%) have this value 0.164438 v391 Triad Count 25.0708 92.8483 0 281 nodes (52%) have this value AA:Agent x Agent 844 v391
PERFORMANCE RISK
The risk based on ability to complete tasks accurately. Is the organization able to complete all tasks? How well does the organization build consensus? How many tasks would be left undone if a single employee were selected for removal?
Network Level Measure Value
Node Level Measure Avg Stddev Min/Max Min/Max Nodes
PERSONNEL INTERACTION RISK
The risk based on agent communication, either agents communicating who should not be, or vice-versa. Are agents with similar skills interacting? Are agents with complementary skills interacting? Are there groups of agents communicating in unexpected ways?
Network Level Measure Value Fragmentation 0.431502 Agent x Agent
Node Level Measure Avg Stddev Min/Max Min/Max Nodes Centrality/Betweenness 0.00161891 0.00634868 0 278 nodes (51%) have this value AA:Agent x Agent 0.070992 v481 Centrality/Closeness 0.0040285 0.00177681 0.0018622 202 nodes (37%) have this value AA:Agent x Agent 0.00557034 v409 Centrality/Total Degree 0.0147934 0.0485165 0 123 nodes (22%) have this value AA:Agent x Agent 0.541978 v67 Component Members/Weak 16.4693 32.5698 1 405 nodes (75%) have this value AA:Agent x Agent 128 v98
REDUNDANCY RISK
The risk based on redundancy in task assignments, resource access, and knowledge access. An organization with little redundancy is more adversely affected by an agent or resource no longer being available. On the other hand, too much redundancy makes an organization inefficient.
Network Level Measure Value
Node Level Measure Avg Stddev Min/Max Min/Max Nodes Constraint/Burt 0.212882 0.291654 0 202 nodes (37%) have this value AA:Agent x Agent 1 48 nodes (8%) have this value Effective Network Size/Burt 7.76709 26.0472 0 200 nodes (37%) have this value AA:Agent x Agent 293.096 v67
RESOURCE ALLOCATION RISK
The risk based on resource allocation on the organization's ability to complete tasks. Is agent workload evenly distributed? Do agents have access to the resources they need to complete tasks? Do agents have access to resources they do not use?
Network Level Measure Value
Node Level Measure Avg Stddev Min/Max Min/Max Nodes
SLOW MEASURES
These are measures that are computationally and/or memory intensive.
Network Level Measure Value Average Distance 3.18015 Agent x Agent Hierarchy 0.48668 Agent x Agent Network Centralization/Betweenness 0.0695023 Agent x Agent Upper Boundedness 0.977557 Agent x Agent
Node Level Measure Avg Stddev Min/Max Min/Max Nodes Centrality/Betweenness 0.00161891 0.00634868 0 278 nodes (51%) have this value AA:Agent x Agent 0.070992 v481 Centrality/Eigenvector 0.0018622 0.00743711 0 132 nodes (24%) have this value AA:Agent x Agent 0.0811172 v67 Clique Count 8.04655 30.9861 0 292 nodes (54%) have this value AA:Agent x Agent 329 v481 Cognitive Distinctiveness 0.015441 0.015743 0.00808805 202 nodes (37%) have this value 0.143837 v67 Cognitive Expertise 0.00777381 0.00060425 0.00425421 v391 0.00811253 v60 Cognitive Resemblance 0.984559 0.015743 0.856163 v67 0.991912 202 nodes (37%) have this value Cognitive Similarity 0.0117415 0.0145184 0 212 nodes (39%) have this value 0.0556525 v476 Correlation/Distinctiveness 0.015441 0.015743 0.00808805 202 nodes (37%) have this value AA:Agent x Agent 0.143837 v67 Correlation/Expertise 0.00777381 0.00060425 0.00425421 v391 AA:Agent x Agent 0.00811253 v60 Correlation/Resemblance 0.984559 0.015743 0.856163 v67 AA:Agent x Agent 0.991912 202 nodes (37%) have this value Correlation/Similarity 0.0117415 0.0145184 0 212 nodes (39%) have this value AA:Agent x Agent 0.0556525 v476 Shared Situation Awareness 0.0018622 0.0124332 0 241 nodes (44%) have this value 0.164438 v391
TASK RISK
The risk based on task precedence and task assignment. Do agents have the resources to complete their tasks? Are tasks highly interdependent so that the inability to perform one task prevents many other tasks from being done?
Network Level Measure Value
Node Level Measure Avg Stddev Min/Max Min/Max Nodes
Produced by ORA developed at CASOS - Carnegie Mellon UniversityNode-level Tables
For each node class a file is made with tables for the measures. If there are no node-level measures of a particular type, then no file is generated.
Agent-level measures saved to: /root/All Measures_Agent-level-measures.html
Tuesday, August 25, 2009
Simulated Students: Pinocchio goes to school.
Simulation is a way of understanding the world by building a simpler model of a complex structure or system being studied. (Gilbert & Troitzsch, 2005). It is great for exploring and developing theories about social processes including education.
What are simulated students?
Simulated students are machine learning systems whose behavior is consistent with data from human students. It can be used by teachers to practice their tutoring skills. It can be used as a collaborative learner that can shift from novice to expert as the need arises. It can be used by instructional designers to test their instruction. (VanLehn, Ohlsson, & Nason, 1994)
There are some researches on these three uses, and they will be noted in the following section.
Researches on simulated students
Simulated students for teacher training
Zibit and Gibson reported an on-going project called simSchool which aims to train novice teachers in teaching 7th-12th grade students. (2005) Their simulated students appear to rely on a database of data gathered from real students rather than a learning algorithm. Interaction with the simulated students involves a 2-D animated interface wherein what needs to be said by the teacher to the students is selected from a menu.
Simulated students as a collaborative learner
Vizcaino created a simulated student that can chat with two other students studying computer programming. The real students did not know which one was the simulated student. What the simulated student have to say is taken from a database rather than using natural language processing. They wanted the simulated student to intervene in the discussion to solve the problems of off-topic conversations, students with passive behaviour and problems related to students' learning. (2005)
Simulated students for instructional design
Mertz used a Soar simulated student. Then it is given training in how to assemble a circuit board. This training is iteratively done, and the lesson is refined until the simulated students learn better. Thereby the lesson is made better each time. (1997)
These researches show that the use of simulated students in improving teaching and learning is not in the realm of science fiction. We can expect it to develop even further in the future and probably even to become mainstream.
References:
Gilbert, N., & Troitzsch, K.G. (2005). Simulation for social scientist. (2nd ed.). England: Open University.
Mertz, J.S. (1997). Using a simulated student for instructional design. International Journal of Artificial Intelligence in Education, 8, 116-141 [Electronic version]. Retrieved August 7, 2009, from http://hal.archives-ouvertes.fr/docs/00/19/73/84/PDF/mertz97.pdf.
VanLehn, K., Ohlsson, S. and Nason, R. (1994). Applications of simulated students: an exploration. Journal of Artificial Intelligence in Education, 5(2), 135-175. Retrieved August 8, 2009, from http://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=2850F00F49F6DCE6F5E8F657D6EAE9C6?doi=10.1.1.4.6200&rep=rep1&type=pdf .
Vizcaino, A. (2005). A simulated student can improve collaborative learning. International Journal of Artificial Intelligence in Education, 15, 3-40 [Electronic version]. Retrieved August 7, 2009, from http://ihelp.usask.ca/iaied/ijaied/members05/archive/Vol_15/Vizcaino/Vizcaino05.pdf.
Zibit, M., & Gibson, D. (2005). simSchool: The game of teaching. Innovate, 1 (6). Retrieved August 17, 2009, from http://www.innovateonline.info/index.php?view=article&id=173.
Monday, August 24, 2009
Simulation of July 22, 2009 Solar Eclipse with Stellarium
I tried it on a Stellarium 0.9.1 on an Ubuntu Intrepid. (Stellarium 0.10.2 has an eclipse simulation! I should try that when I can find an ubuntu package.) The location setting is 89 degrees 40 minutes and 53 seconds east longitude, and 25 degrees 45 minutes north latitude. I could not change the seconds setting so this is an estimate of Kurigram, Bangladesh. It is where this Wikipedia photo of the solar eclipse is taken.
The time setting is between 7:00 A.M. and 11:00 A.M. Philippine time, because it was my locale.
Here are the videos captured with gtk-recordMyDesktop. I wanted to capture it until the moon separates from the sun but it seem to have gotten cut towards the end by gtk-recordMyDesktop.
without atmosphere
with atmosphere
Although I don't teach natural science I think this would be cool to use as an illustration since you can repeat it over and over again. You can also look at it from different locations.
Links
Solar eclipse scripts for Stellarium: http://www.stellarium.org/wiki/index.php/Scripts
Sunday, August 23, 2009
Hack Bandwidth Adaptivity for Moodle using the Multi-Language Content filter
I developed this hack because I am thinking about a mix set of students coming from around the globe; specially in developing countries where bandwidth is still low.
This hack is for Moodle administrators who know where and what the moodle data folder is. You have to have access to the moodledata/lang folder to perform this hack i.e. if online you should have a Cpanel, shell or ftp access to the Moodle site. Try it first in a local test server before performing in a production server. There are no moodle files to be replaced, it only involves installing language packs which should be safe to do.
Download the language files: http://www.mediafire.com/file/fg4tjtdun1n/mdlbandwidth.zip (3.4 KB)
These language files contain only a moodle.php, and a language.php file with parent language set to en_utf8, the default. The only relevant string customized in both files was:
$string['thislanguage'] = 'High Bandwidth';
Unzip the archive mdlbandwidth.zip to your lang folder in the moodle data folder which is usually moodledata/lang/. If you want to be able to edit these language files change the owner to the web server. In Ubuntu's Apache server this is www-data so:
open a terminal
cd to the moodledata/lang folder then,
sudo chown -R www-data:www-data *
After copying go to Moodle web site. You should see the languages Low Bandwidth (loband), Mid Bandwidth (midband) and High Bandwidth (hiband) listed in the language dropdown box. If you're using language caching it make take a while before the list gets updated.
Login as administrator. In Site Administration block ->Modules->Filters->Manage filters. If the Multi-Language Content filter is disabled (grayed out and the eye is closed), click on the eye to enable it (eye will open).
WARNING: Make sure the Multi-languge Content filter is above the Multimedia Filter if you are going to include multimedia files in the body of the content. Or make sure that the Multi-Language Content filter is above all other filters that you will use in the body of the content. Otherwise all the multimedia files will be displayed at the same time.
Go to your course and create a web page. Turn on editing and then Add a resource...->Compose a web page. Click the [<>] button in the HTML editor to enter code editing mode. Then type the following:
e.g.
<span class="multilang" lang="XX">your_content_here</span>
<span class="multilang" lang="loband">Low Bandwidth Content</span>
<span class="multilang" lang="midband">Mid Bandwidth Content</span>
<span class="multilang" lang="hiband">High Bandwidth Content</span>
Because you can only change the language setting in the front site page, it would be good practice to put links to the 3 types of content as a lead list to serve as navigation aid. Add &lang=loband_utf8, &lang=midband_utf8, &lang=hiband_utf8 to the web page url e.g. let's say the url is:
http://localhost/moodle/mod/resource/view.php?id=329
then the 3 links should be:
http://localhost/moodle/mod/resource/view.php?id=329&lang=loband_utf8
http://localhost/moodle/mod/resource/view.php?id=329&lang=midband_utf8
http://localhost/moodle/mod/resource/view.php?id=329&lang=hiband_utf8
Download file: Template content for bandwidth adaptivity in Moodle in utf-8 encoding (605 bytes)
I tested the setup with the following content:
Low bandwidth: transcript all text pdf 69.5 KB
Mid bandwidth: mp3 audio 5.9 MB
High bandwidth: avi video 95.5 MB
The content for this test is available as a scorm package at: http://matangdilis.moodle4free.com/mod/scorm/view.php?id=10
This hack was tested on a Moodle 1.9.4+ (Build: 20090204) installation in a local PC running in an Ubuntu Intrepid operating system. Sorry I can't show a live demo since I do not have access to the site files in my free online Moodle installation.
Reference:
Aptivate. Web Design for Low Bandwidth, Introduction. Retrieved August 22, 2009, from http://www.aptivate.org/webguidelines/Introduction.html.
Multi-language content. In Moodle Docs. Retrieved August 22, 2009 from http://docs.moodle.org/en/Multi_language_content.
Links:
Download the language files: http://www.mediafire.com/file/fg4tjtdun1n/mdlbandwidth.zip (3.4 KB)
Download file: Template content for bandwidth adaptivity in Moodle in utf-8 encoding (605 bytes)
Moodle forum discussion about this hack: http://moodle.org/mod/forum/discuss.php?d=127619/discuss.php?d=127619
Sunday, August 9, 2009
Links->Concepts Problem
I am currently haunted by this question and I am writing here the leads that I found that may answer this profound problem.
My knowledge of how the brain works is quite superficial. I have always thought that the links are important as indexes for the brain, so that the entire semantic network need not be modeled in long term memory.
Indexing external semantic networks in memory
The indexes are either keywords, url, people you know, that will give you a semantic network. The semantic network's nodes may already exists in long term memory. It is the links that may be weak and even in danger of disappearing (forgetting). The equivalent or similar mental network in memory may be connected by weak links, so there is a need for a trigger to fire these links. That trigger is the indexes which may draw the semantic network structure in working memory and remind the brain of the path of the links to fire.
The question is whether the concepts in the semantic network of the external document is mapped in the declarative (semantic, episodic) or procedural memory in the cognitive architecture. Another is how many times do we need to keep drawing the external semantic network (e.g. asking a friend, rereading a blog) in order to strengthen the links and reduce the centrality or importance of the index.
Of course this is just my guess, I don't know whether this is true, I don't have any idea. But there may be a way to find out.
Simulating the CCK08 Moodle Forums
I am not a neuroscientist and the closest I can study a living brain is an artificial one. Fortunately cognitive scientists have developed cognitive architectures which are agents that tries to model the brain. One of these is Soar. I find Soar fascinating as it's underlying design of working memory is "organized as graph structures in states (Laird, 2008)". I was totally suprised to find nodes and links in their cognitive architecture. So I think it's not far fetched if someone has already found a way to relate this memory network to semantic networks and social networks. It's just a matter of time before I find those papers. Here is how I located the tools used in my on-going study of the CCK08 Moodle forums in Nigel Gilbert's diagram of the logic of simulation as a method (2005).
(based on Gilbert as cited in Gilbert & Troitzsch, 2005, p.17)
Ron Sun's Cascading Levels of Analysis
Although I have not fully read Ron Sun's "Cognition and multi-agent interaction (2006)" I found his idea of cascading levels of analysis providing some methodological meat to my skeleton of a general model of distance learning. I gather that he is advocating the integration of cognitive architectures and agent-based modeling in this book. He further states that "we may view different disciplines as different levels of abstraction in the process of exploring essentially the same broad set of questions (Sun, 2005)". His hierarchy of this different levels of abstractions are as follows:
Sun's Hierarchy of Four Levels
Level | Object of Analysis | Type of Analysis | Model |
1 | inter-agent/collective processes | social/cultural | collections of agent models |
2 | agents | psychological | individual agent models |
3 | intra-agent processes | componential | modular construction of agent models |
4 | substrates | physiological | biological realization of models |
These levels looks similar to what I call modes in my skeletal model. And he further argue that we should engage in cross and mixed level analysis. I won't go any further on Sun's ideas since I still need to read the entire work, but I find it really exciting. His advocated approach may shed light on the problem of how linkages affect conceptual formation.
My skeletal model of distance learning
References
Laird, J.E. (2008, August 27). The Soar 9 tutorial. Part 1. Available in the software package here: http://sitemaker.umich.edu/soar/soar_software_downloads
Gilbert, N., & Troitzsch, K.G. (2005). Simulation for social scientist. (2nd ed.). England: Open University.
Siemens, G. (2009, July 30). Different Social Networks. Retrieved, August 9, 2009, from
http://www.elearnspace.org/blog/2009/07/30/different-social-networks/.
Sun, R. (2006). Cognition and multi-agent interaction. From cognitive modeling to social simulation. Cambridge: Cambridge University.
Wednesday, August 5, 2009
CCK09: CCK08 Moodle Forums' Density of Networks according to Pajek
Forums | Density (loops allowed) |
Introduction | 0.0028287 |
General | 0.0263728 |
1 | 0.0345478 |
2 | 0.0561677 |
3 | 0.1119792 |
4 | 0.1186224 |
5 | 0.0890023 |
6 | 0.0911111 |
7 | 0.1264000 |
8 | 0.0242215 |
9 | 0.1173469 |
10 | 0.1041667 |
11 | 0.0832653 |
12 | 0.0986920 |
Forums 1-12 | 0.0346763 |
Union of All | 0.0082464 |
Tuesday, August 4, 2009
CCK09: CCK08 Forum's Social Networks in Pajek
Open dataset in Pajek.
Figure 1: Introductions
Figure 2: General Discussion
Figure 3: Forum 1, What is connectivism?
Figure 4: Forum 2, Rethinking Knowledge
Figure 5: Forum 3, Networks
Figure 6: Forum 4, History of Learning Networks
Figure 7: Forum 5, Groups and Networks
Figure 8: Forum 6, Complexity and Chaos
Figure 9: Forum 7, Instructional Design
Figure 10: Forum 8, Power, Authority, Control
Figure 11: Forum 9, Changing Roles
Figure 12: Forum 10, Openness
Figure 13: Forum 11, Systemic Change
Figure 14: Forum 12, Next Steps & Research
Figure 15: Union of Forums 1-12
Figure 16: Union of All Forums
CCK09: CCK08 Forum's Social Networks in Netdraw
Open dataset with Netdraw.
Figure 1: Introductions
Figure 2: General Discussion
Figure 3: Forum 1, What is connectivism?
Figure 4: Forum 2, Rethinking Knowledge
Figure 5: Forum 3, Networks
Figure 6: Forum 4, History of Learning Networks
Figure 7: Forum 5, Groups and Networks
Figure 8: Forum 6, Complexity and Chaos
Figure 9: Forum 7, Instructional Design
Figure 10: Forum 8, Power, Authority, Control
Figure 11: Forum 9, Changing Roles
Figure 12: Forum 10, Openness
Figure 13: Forum 11, Systemic Change
Figure 14: Forum 12, Next Steps & Research
Figure 15: Union of Forums 1-12
Figure 16: Union of All Forums
Monday, August 3, 2009
Anonymizing CCK08 forum network files
My problem is that I have to anonymize the subset forum level networks by using as a lookup table from the union of all networks vertex labels, that was anonymized in Pajek. If I anonymized all the forum network files in Pajek, then they will not be comparable because Pajek will renumber then from 1 to n. I need them to be comparable so as to track ego's in each forum. Ex.
original file
"Roel Cantada" "Juan dela Cruz"
...
lookup table
"Roel Cantada" "v1"
"Juan dela Cruz" "v2"
...
target anonymized file
"v1" "v2"
I couldn't find a tool for the purpose. rpl appears to me to require me to input 537 codes one by one. So I ended up writing a python script. In the script, anonall is the lookuptable, origfile the vna file to convert, and newfile is the anonymized text file. The python file needs to be in the same folder as the VNA files and it requires manual input of the names of the VNA files. In addition the output needs cleanup of double quotes of the headers of the VNA. But it's better than manually anonymizing all the network files. Here it is.
Python file: http://www.mediafire.com/file/3ttzggdnmtk/anonymizecck08.py.zip (0.43KB)
import csv
origfile = raw_input('csv filename to anonymize: ')
newfile = (origfile + 'new.txt')
table={};
anonall = csv.reader(open('anonall_code.csv'), delimiter=' ', quotechar='"');
forum1 = csv.reader(open(origfile), delimiter=' ', quotechar='"');
output = open(newfile,'a');
for row in anonall:
table[row[0]] = row[-1]
for row in forum1:
for i,j in table.iteritems():
if i in row[-4]:
row[-4] = j
for i,j in table.iteritems():
if i in row[-3]:
row[-3] = j
output.write('\"'+row[-4]+'\" \"'+row[-3]+'\" \"'+row[-2]+'\" \"'+row[-1]+'\"\n')
output = open(newfile,'a')
I'll be sharing the VNA files for the individual forums within this week.