Natural Language Processing in Python

Total Page:16

File Type:pdf, Size:1020Kb

Natural Language Processing in Python Natural Language Processing in Python Authors: Steven Bird, Ewan Klein, Edward Loper Version: 0.9.1 (draft only, please send feedback to authors) Copyright: © 2001-2008 the authors License: Creative Commons Attribution-Noncommercial-No Derivative Works 3.0 United States License Revision: Date: January 24, 2008 2 Bird, Klein & Loper Contents 1 Introduction to Natural Language Processing 19 1.1 The Language Challenge ................................. 19 1.1.1 The Richness of Language ............................ 19 1.1.2 The Promise of NLP ............................... 20 1.2 Language and Computation ................................ 21 1.2.1 NLP and Intelligence ............................... 21 1.2.2 Language and Symbol Processing ........................ 22 1.2.3 Philosophical Divides .............................. 23 1.3 The Architecture of Linguistic and NLP Systems .................... 24 1.3.1 Generative Grammar and Modularity ...................... 24 1.4 Before Proceeding Further... ............................... 27 1.5 Further Reading ...................................... 27 I BASICS 29 2 Programming Fundamentals and Python 33 2.1 Getting Started ...................................... 33 2.2 Understanding the Basics: Strings and Variables ..................... 34 2.2.1 Representing text ................................. 34 2.2.2 Storing and Reusing Values ........................... 35 2.2.3 Printing and Inspecting Strings .......................... 36 2.2.4 Creating Programs with a Text Editor ...................... 37 2.2.5 Exercises ..................................... 38 2.3 Slicing and Dicing .................................... 38 2.3.1 Accessing Individual Characters ......................... 38 2.3.2 Accessing Substrings ............................... 40 2.3.3 Exercises ..................................... 41 2.4 Strings, Sequences, and Sentences ............................ 41 2.4.1 Lists ........................................ 42 2.4.2 Working on Sequences One Item at a Time ................... 44 2.4.3 String Formatting ................................. 45 2.4.4 Converting Between Strings and Lists ...................... 47 2.4.5 Mini-Review ................................... 48 2.4.6 Exercises ..................................... 49 2.5 Making Decisions ..................................... 51 3 CONTENTS 2.5.1 Making Simple Decisions ............................ 51 2.5.2 Conditional Expressions ............................. 52 2.5.3 Iteration, Items, and if ............................. 53 2.5.4 A Taster of Data Types .............................. 54 2.5.5 Exercises ..................................... 55 2.6 Getting Organized ..................................... 56 2.6.1 Accessing Data with Data ............................ 57 2.6.2 Counting with Dictionaries ............................ 59 2.6.3 Getting Unique Entries .............................. 60 2.6.4 Scaling Up .................................... 61 2.6.5 Exercises ..................................... 61 2.7 Regular Expressions ................................... 62 2.7.1 Groupings ..................................... 65 2.7.2 Practice Makes Perfect .............................. 66 2.7.3 Exercises ..................................... 67 2.8 Summary ......................................... 68 2.9 Further Reading ...................................... 69 2.9.1 Python ...................................... 69 2.9.2 Regular Expressions ............................... 69 2.9.3 Unicode ...................................... 69 3 Words: The Building Blocks of Language 71 3.1 Introduction ........................................ 71 3.2 Tokens, Types and Texts ................................. 71 3.2.1 Extracting Text from Files ............................ 73 3.2.2 Extracting Text from the Web .......................... 74 3.2.3 Extracting Text from NLTK Corpora ....................... 75 3.2.4 Exercises ..................................... 76 3.3 Text Processing with Unicode .............................. 78 3.3.1 What is Unicode? ................................. 79 3.3.2 Extracting encoded text from files ........................ 79 3.3.3 Using your local encoding in Python ....................... 82 3.3.4 Chinese and XML ................................ 82 3.3.5 Exercises ..................................... 83 3.4 Tokenization and Normalization ............................. 83 3.4.1 Tokenization with Regular Expressions ..................... 83 3.4.2 Lemmatization and Normalization ........................ 84 3.4.3 Transforming Lists ................................ 86 3.4.4 Exercises ..................................... 87 3.5 Counting Words: Several Interesting Applications .................... 89 3.5.1 Frequency Distributions ............................. 89 3.5.2 Stylistics ..................................... 90 3.5.3 Aside: Defining Functions ............................ 91 3.5.4 Lexical Dispersion ................................ 91 3.5.5 Comparing Word Lengths in Different Languages ................ 93 3.5.6 Generating Random Text with Style ....................... 93 3.5.7 Collocations ................................... 94 January 24, 2008 4 Bird, Klein & Loper CONTENTS Introduction to Natural Language Processing (DRAFT) 3.5.8 Exercises ..................................... 94 3.6 WordNet: An English Lexical Database ......................... 97 3.6.1 Senses and Synonyms .............................. 97 3.6.2 The WordNet Hierarchy ............................. 98 3.6.3 WordNet Similarity ................................ 100 3.6.4 Exercises ..................................... 101 3.7 Conclusion ........................................ 101 3.8 Summary ......................................... 101 3.9 Further Reading ...................................... 102 4 Categorizing and Tagging Words 103 4.1 Introduction ........................................ 103 4.2 Getting Started with Tagging ............................... 105 4.2.1 Representing Tags and Reading Tagged Corpora ................ 105 4.2.2 Nouns and Verbs ................................. 107 4.2.3 Nouns and Verbs in Tagged Corpora ....................... 109 4.2.4 The Default Tagger ................................ 109 4.2.5 Exercises ..................................... 111 4.3 Looking for Patterns in Words .............................. 112 4.3.1 Some Morphology ................................ 112 4.3.2 The Regular Expression Tagger ......................... 113 4.3.3 Exercises ..................................... 114 4.4 Baselines and Backoff .................................. 115 4.4.1 The Lookup Tagger ................................ 115 4.4.2 Backoff ...................................... 116 4.4.3 Choosing a Good Baseline ............................ 116 4.4.4 Exercises ..................................... 116 4.5 Getting Better Coverage ................................. 118 4.5.1 More English Word Classes ........................... 118 4.5.2 Some Diagnostics ................................ 119 4.5.3 Unigram Tagging ................................. 119 4.5.4 Affix Taggers ................................... 120 4.5.5 N-Gram Taggers ................................. 120 4.5.6 Combining Taggers ................................ 121 4.5.7 Tagging Unknown Words ............................ 122 4.5.8 Storing Taggers .................................. 122 4.5.9 Exercises ..................................... 123 4.6 Summary ......................................... 124 4.7 Further Reading ...................................... 124 4.8 Appendix: Brown Tag Set ................................ 125 4.8.1 Acknowledgments ................................ 126 5 Data-Intensive Language Processing 127 Bird, Klein & Loper 5 January 24, 2008 CONTENTS II PARSING 129 6 Structured Programming in Python 133 6.1 Introduction ........................................ 133 6.2 Back to the Basics ..................................... 133 6.2.1 Assignment .................................... 134 6.2.2 Sequences: Strings, Lists and Tuples ....................... 135 6.2.3 Combining Different Sequence Types ...................... 136 6.2.4 Stacks and Queues ................................ 137 6.2.5 More List Comprehensions ............................ 138 6.2.6 Dictionaries .................................... 140 6.2.7 Exercises ..................................... 141 6.3 Presenting Results ..................................... 143 6.3.1 Strings and Formats ............................... 144 6.3.2 Lining Things Up ................................. 144 6.3.3 Writing Results to a File ............................. 145 6.3.4 Graphical Presentation .............................. 148 6.3.5 Exercises ..................................... 148 6.4 Functions ......................................... 149 6.4.1 Function Arguments ............................... 151 6.4.2 An Important Subtlety .............................. 153 6.4.3 Functional Decomposition ............................ 153 6.4.4 Documentation (notes) .............................. 154 6.4.5 Functions as Arguments ............................. 155 6.4.6 Exercises ..................................... 156 6.5 Algorithm Design Strategies ............................... 157 6.5.1 Recursion (notes) ................................. 158 6.5.2 Deeply Nested Objects (notes) .......................... 159 6.5.3 Dynamic Programming .............................. 159 6.5.4 Timing (notes) .................................
Recommended publications
  • Basic Structures: Sets, Functions, Sequences, and Sums 2-2
    CHAPTER Basic Structures: Sets, Functions, 2 Sequences, and Sums 2.1 Sets uch of discrete mathematics is devoted to the study of discrete structures, used to represent discrete objects. Many important discrete structures are built using sets, which 2.2 Set Operations M are collections of objects. Among the discrete structures built from sets are combinations, 2.3 Functions unordered collections of objects used extensively in counting; relations, sets of ordered pairs that represent relationships between objects; graphs, sets of vertices and edges that connect 2.4 Sequences and vertices; and finite state machines, used to model computing machines. These are some of the Summations topics we will study in later chapters. The concept of a function is extremely important in discrete mathematics. A function assigns to each element of a set exactly one element of a set. Functions play important roles throughout discrete mathematics. They are used to represent the computational complexity of algorithms, to study the size of sets, to count objects, and in a myriad of other ways. Useful structures such as sequences and strings are special types of functions. In this chapter, we will introduce the notion of a sequence, which represents ordered lists of elements. We will introduce some important types of sequences, and we will address the problem of identifying a pattern for the terms of a sequence from its first few terms. Using the notion of a sequence, we will define what it means for a set to be countable, namely, that we can list all the elements of the set in a sequence.
    [Show full text]
  • Introduction
    Introduction A need shared by many applications is the ability to authenticate a user and then bind a set of permissions to the user which indicate what actions the user is permitted to perform (i.e. authorization). A LocalSystem may have implemented it's own authentication and authorization and now wishes to utilize a federated Identity Provider (IdP). Typically the IdP provides an assertion with information describing the authenticated user. The goal is to transform the IdP assertion into a LocalSystem token. In it's simplest terms this is a data transformation which might include: • renaming of data items • conversion to a different format • deletion of data • addition of data • reorganization of data There are many ways such a transformation could be implemented: 1. Custom site specific code 2. Scripts written in a scripting language 3. XSLT 4. Rule based transforms We also desire these goals for the transformation. 1. Site administrator configurable 2. Secure 3. Simple 4. Extensible 5. Efficient Implementation choice 1, custom written code fails goals 1, 3 and 4, an admin cannot adapt it, it's not simple, and it's likely to be difficult to extend. Implementation choice 2, script based transformations have a lot of appeal. Because one has at their disposal the full power of an actual programming language there are virtually no limitations. If it's a popular scripting language an administrator is likely to already know the language and might be able to program a new transformation or at a minimum tweak an existing script. Forking out to a script interpreter is inefficient, but it's now possible to embed script interpreters in the existing application.
    [Show full text]
  • Pharo by Example
    Portland State University PDXScholar Computer Science Faculty Publications and Computer Science Presentations 2009 Pharo by Example Andrew P. Black Portland State University, [email protected] Stéphane Ducasse Oscar Nierstrasz University of Berne Damien Pollet University of Lille Damien Cassou See next page for additional authors Let us know how access to this document benefits ouy . Follow this and additional works at: http://pdxscholar.library.pdx.edu/compsci_fac Citation Details Black, Andrew, et al. Pharo by example. 2009. This Book is brought to you for free and open access. It has been accepted for inclusion in Computer Science Faculty Publications and Presentations by an authorized administrator of PDXScholar. For more information, please contact [email protected]. Authors Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz, Damien Pollet, Damien Cassou, and Marcus Denker This book is available at PDXScholar: http://pdxscholar.library.pdx.edu/compsci_fac/108 Pharo by Example Andrew P. Black Stéphane Ducasse Oscar Nierstrasz Damien Pollet with Damien Cassou and Marcus Denker Version of 2009-10-28 ii This book is available as a free download from http://PharoByExample.org. Copyright © 2007, 2008, 2009 by Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz and Damien Pollet. The contents of this book are protected under Creative Commons Attribution-ShareAlike 3.0 Unported license. You are free: to Share — to copy, distribute and transmit the work to Remix — to adapt the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work).
    [Show full text]
  • An Extensible and Expressive Visitor Framework for Programming Language Reuse
    EVF: An Extensible and Expressive Visitor Framework for Programming Language Reuse Weixin Zhang and Bruno C. d. S. Oliveira The University of Hong Kong, Hong Kong, China {wxzhang2,bruno}@cs.hku.hk Abstract Object Algebras are a design pattern that enables extensibility, modularity, and reuse in main- stream object-oriented languages such as Java. The theoretical foundations of Object Algebras are rooted on Church encodings of datatypes, which are in turn closely related to folds in func- tional programming. Unfortunately, it is well-known that certain programs are difficult to write and may incur performance penalties when using Church-encodings/folds. This paper presents EVF: an extensible and expressive Java Visitor framework. The visitors supported by EVF generalize Object Algebras and enable writing programs using a generally recursive style rather than folds. The use of such generally recursive style enables users to more naturally write programs, which would otherwise require contrived workarounds using a fold-like structure. EVF visitors retain the type-safe extensibility of Object Algebras. The key advance in EVF is a novel technique to support modular external visitors. Modular external visitors are able to control traversals with direct access to the data structure being traversed, allowing dependent operations to be defined modularly without the need of advanced type system features. To make EVF practical, the framework employs annotations to automatically generate large amounts of boilerplate code related to visitors and traversals. To illustrate the applicability of EVF we conduct a case study, which refactors a large number of non-modular interpreters from the “Types and Programming Languages” (TAPL) book.
    [Show full text]
  • Declaration a Variable Within Curly Braces
    Declaration A Variable Within Curly Braces How cyprinoid is Allan when rotiferous and towery Fulton mutilating some charities? Heywood often assumes ditto when waiversoapless very Grove once. overuse andante and mongrelising her lollipop. Mortified Winslow sploshes unmeasurably, he hones his Initialization is always applicable. The curly brace must declare tcl commands in declaring constructors like comparision, often want to perform a command contained within their benefits. But lower is a fundamental difference between instrumentation and. It is variable. But also used from within curly braces though, declare a declaration and your comment! Controlling precision with tcl_precision. Every opening brace has a closing brace. However, bitwise NOT, a feel turn to contact us. Simply indicates that variables declared or braces. There is no difference in the way they are executed on a page. JavaScript Scope and Closures CSS-Tricks. If the code goes first, and it represents one of the values in that array. That curly braces. They can declare be used within strings to separate variables from surrounding text. Requires curly braces. The braces within another is a single character or white space is just ignored in declarations, declare various types and destructuring variable not when you have. Basics of Jinja Template Language Flask tutorial OverIQcom. PREFER using interpolation to compose strings and values. The variable declarations by a decorative frame. The code between any pair of curly braces in a method is facilitate a function b brick c block d sector. Beginners sometimes answer that. This is destructuring assignment syntax. Null pointer to me or variable declaration a within curly braces can two.
    [Show full text]
  • An Introduction to the C Programming Language and Software Design
    An Introduction to the C Programming Language and Software Design Tim Bailey Preface This textbook began as a set of lecture notes for a first-year undergraduate software engineering course in 2003. The course was run over a 13-week semester with two lectures a week. The intention of this text is to cover topics on the C programming language and introductory software design in sequence as a 20 lecture course, with the material in Chapters 2, 7, 8, 11, and 13 well served by two lectures apiece. Ample cross-referencing and indexing is provided to make the text a servicable reference, but more complete works are recommended. In particular, for the practicing programmer, the best available tutorial and reference is Kernighan and Ritchie [KR88] and the best in-depth reference is Harbison and Steele [HS95, HS02]. The influence of these two works on this text is readily apparent throughout. What sets this book apart from most introductory C-programming texts is its strong emphasis on software design. Like other texts, it presents the core language syntax and semantics, but it also addresses aspects of program composition, such as function interfaces (Section 4.5), file modularity (Section 5.7), and object-modular coding style (Section 11.6). It also shows how to design for errors using assert() and exit() (Section 4.4). Chapter 6 introduces the basics of the software design process—from the requirements and specification, to top-down and bottom-up design, to writing actual code. Chapter 14 shows how to write generic software (i.e., code designed to work with a variety of different data types).
    [Show full text]
  • Freeware-List.Pdf
    FreeWare List A list free software from www.neowin.net a great forum with high amount of members! Full of information and questions posted are normally answered very quickly 3D Graphics: 3DVia http://www.3dvia.com...re/3dvia-shape/ Anim8or - http://www.anim8or.com/ Art Of Illusion - http://www.artofillusion.org/ Blender - http://www.blender3d.org/ CreaToon http://www.creatoon.com/index.php DAZ Studio - http://www.daz3d.com/program/studio/ Freestyle - http://freestyle.sourceforge.net/ Gelato - http://www.nvidia.co...ge/gz_home.html K-3D http://www.k-3d.org/wiki/Main_Page Kerkythea http://www.kerkythea...oomla/index.php Now3D - http://digilander.li...ng/homepage.htm OpenFX - http://www.openfx.org OpenStages http://www.openstages.co.uk/ Pointshop 3D - http://graphics.ethz...loadPS3D20.html POV-Ray - http://www.povray.org/ SketchUp - http://sketchup.google.com/ Sweet Home 3D http://sweethome3d.sourceforge.net/ Toxic - http://www.toxicengine.org/ Wings 3D - http://www.wings3d.com/ Anti-Virus: a-squared - http://www.emsisoft..../software/free/ Avast - http://www.avast.com...ast_4_home.html AVG - http://free.grisoft.com/ Avira AntiVir - http://www.free-av.com/ BitDefender - http://www.softpedia...e-Edition.shtml ClamWin - http://www.clamwin.com/ Microsoft Security Essentials http://www.microsoft...ity_essentials/ Anti-Spyware: Ad-aware SE Personal - http://www.lavasoft....se_personal.php GeSWall http://www.gentlesec...m/download.html Hijackthis - http://www.softpedia...ijackThis.shtml IObit Security 360 http://www.iobit.com/beta.html Malwarebytes'
    [Show full text]
  • Chapter Number
    Chapter Number The Role of Computer Games Industry and Open Source Philosophy in the Creation of Affordable Virtual Heritage Solutions Andrea Bottino and Andrea Martina Dipartimento di Automatica e Informatica, Politecnico di Torino Italy 1. Introduction The Museum, according to the ICOM’s (International Council of Museums) definition, is a non-profit, permanent institution […] which acquires, conserves, researches, communicates and exhibits the tangible and intangible heritage of humanity and its environment for the purposes of education, study and enjoyment (ICOM, 2007). Its main function is therefore to communicate the research results to the public and the way to communicate must meet the expectations of the reference audience, using the most appropriate tools available. During the last decades of 20th century, there has been a substantial change in this role, according to the evolution of culture, literacy and society. Hence, over the last decades, the museum’s focus has shifted from the aesthetic value of museum artifacts to the historical and artistic information they encompass (Hooper-Greenhill, 2000), while the museums’ role has changed from a mere "container" of cultural objects to a "narrative space" able to explain, describe, and revive the historical material in order to attract and entertain visitors. These changes require creating new exhibits, able to tell stories about the objects, enabling visitors to construct semantic meanings around them (Hoptman, 1992). The objective that museums pursue is reflected by the concept of Edutainment, Education + Entertainment. Nowadays, visitors are not satisfied with ‘learning something’, but would rather engage in an ‘experience of learning’, or ‘learning for fun’ (Packer, 2006).
    [Show full text]
  • Potential Preparation of Technical Documentation with Measureit in Blender
    SCIENTIFIC PROCEEDINGS II INTERNATIONAL SCIENTIFIC-TECHNICAL CONFERENCE "INNOVATIONS IN ENGINEERING" 2016 ISSN 1310-3946 POTENTIAL PREPARATION OF TECHNICAL DOCUMENTATION WITH MEASUREIT IN BLENDER Phd Tihomir Dovramadjiev Mechanical Engineering Faculty, Industrial Design Department - Technical University of Varna, Bulgaria [email protected] Abstract: It is customary for the preparation of technical documentation to use CAD (computer aided design) systems. Depending on the design and functionality they are divided into low, medium and high class. In certain cases, there are developed alternative software applications or such added to other basic systems with broad opportunities for development. At the present time open source programs are more widely used. This reinforces the interest of designers, engineers and architects to find possible application of such programs in the workflow. Contemporary and very good solution gives Blender free software with specialized application "MeasureIt". Keywords: BLENDER, TECHNICAL, DRAWING, SKETCH, MEASUREIT 1. Introduction It happens so that sometimes the high cost of specialized CAD systems and specialized programs for preparation of technical documentation become an obstacle to consumers, causing many professionals to seek other options for carrying out their work. Open source software programs offer somewhat solution to this issue, with some remarks about the functional capabilities and competitiveness of proven paid programs. At this stage a free Fig. 1 Integration of MeasureIt Addon in Blender license, accessible and popular programs are FreeCAD, LibreCAD, General view of MeasureIt Addon is shown in Fig.2 NanoCAD, TigerCAD, and others [1, 2]. Of course each of these programs is specific in nature and has positive aspects. Tipically, the free license leads to a lack of the necessary renewal of activity in functionality and as a rule this type of programming to some extent lag functionally behind the leading paid CAD systems [3, 4].
    [Show full text]
  • Pharo by Example
    Pharo by Example Andrew P. Black Stéphane Ducasse Oscar Nierstrasz Damien Pollet with Damien Cassou and Marcus Denker Version of 2009-10-28 ii This book is available as a free download from http://PharoByExample.org. Copyright © 2007, 2008, 2009 by Andrew P. Black, Stéphane Ducasse, Oscar Nierstrasz and Damien Pollet. The contents of this book are protected under Creative Commons Attribution-ShareAlike 3.0 Unported license. You are free: to Share — to copy, distribute and transmit the work to Remix — to adapt the work Under the following conditions: Attribution. You must attribute the work in the manner specified by the author or licensor (but not in any way that suggests that they endorse you or your use of the work). Share Alike. If you alter, transform, or build upon this work, you may distribute the resulting work only under the same, similar or a compatible license. • For any reuse or distribution, you must make clear to others the license terms of this work. The best way to do this is with a link to this web page: creativecommons.org/licenses/by-sa/3.0/ • Any of the above conditions can be waived if you get permission from the copyright holder. • Nothing in this license impairs or restricts the author’s moral rights. Your fair dealing and other rights are in no way affected by the above. This is a human-readable summary of the Legal Code (the full license): creativecommons.org/licenses/by-sa/3.0/legalcode Published by Square Bracket Associates, Switzerland. http://SquareBracketAssociates.org ISBN 978-3-9523341-4-0 First Edition, October, 2009.
    [Show full text]
  • Free and Open Source Software
    Free and open source software Copyleft ·Events and Awards ·Free software ·Free Software Definition ·Gratis versus General Libre ·List of free and open source software packages ·Open-source software Operating system AROS ·BSD ·Darwin ·FreeDOS ·GNU ·Haiku ·Inferno ·Linux ·Mach ·MINIX ·OpenSolaris ·Sym families bian ·Plan 9 ·ReactOS Eclipse ·Free Development Pascal ·GCC ·Java ·LLVM ·Lua ·NetBeans ·Open64 ·Perl ·PHP ·Python ·ROSE ·Ruby ·Tcl History GNU ·Haiku ·Linux ·Mozilla (Application Suite ·Firefox ·Thunderbird ) Apache Software Foundation ·Blender Foundation ·Eclipse Foundation ·freedesktop.org ·Free Software Foundation (Europe ·India ·Latin America ) ·FSMI ·GNOME Foundation ·GNU Project ·Google Code ·KDE e.V. ·Linux Organizations Foundation ·Mozilla Foundation ·Open Source Geospatial Foundation ·Open Source Initiative ·SourceForge ·Symbian Foundation ·Xiph.Org Foundation ·XMPP Standards Foundation ·X.Org Foundation Apache ·Artistic ·BSD ·GNU GPL ·GNU LGPL ·ISC ·MIT ·MPL ·Ms-PL/RL ·zlib ·FSF approved Licences licenses License standards Open Source Definition ·The Free Software Definition ·Debian Free Software Guidelines Binary blob ·Digital rights management ·Graphics hardware compatibility ·License proliferation ·Mozilla software rebranding ·Proprietary software ·SCO-Linux Challenges controversies ·Security ·Software patents ·Hardware restrictions ·Trusted Computing ·Viral license Alternative terms ·Community ·Linux distribution ·Forking ·Movement ·Microsoft Open Other topics Specification Promise ·Revolution OS ·Comparison with closed
    [Show full text]
  • Project-Team Artis Acquisition, Representation and Transformations
    INSTITUT NATIONAL DE RECHERCHE EN INFORMATIQUE ET EN AUTOMATIQUE Project-Team artis Acquisition, representation and transformations for image synthesis Grenoble - Rhône-Alpes Theme : Interaction and Visualization c t i v it y ep o r t 2010 Table of contents 1. Team .................................................................................... 1 2. Overall Objectives ........................................................................ 1 3. Scientific Foundations .....................................................................2 3.1. Introduction 2 3.2. Lighting and Rendering 2 3.2.1. Lighting simulation 3 3.2.1.1. Image realism 3 3.2.1.2. Computation efficiency 3 3.2.1.3. Characterization of lighting phenomena 3 3.2.2. Inverse rendering 3 3.3. Expressive rendering 4 3.4. Computational Photography 4 3.5. Guiding principles 4 3.5.1. Mathematical and geometrical characterization of models and algorithms 4 3.5.2. Balance between speed and fidelity 5 3.5.3. Model and parameter extraction from real data 5 3.5.4. User friendliness 5 4. Application Domains ......................................................................5 4.1. Illustration 5 4.2. Video games and visualization 5 4.3. Virtual heritage 6 5. Software ................................................................................. 6 5.1. Introduction 6 5.2. libQGLViewer: a 3D visualization library 6 5.3. PlantRad 6 5.4. High Quality Renderer 6 5.5. MobiNet 7 5.6. Basilic : an Automated Bibliography Server 7 5.7. XdkBibTeX : parsing bibtex files made easy 7 5.8. Freestyle 8 5.9. Diffusion Curves 8 5.10. TiffIO: Qt 3 binding for TIFF images 8 5.11. VRender: vector figures 9 5.12. SciPress 9 6. New Results ............................................................................. 10 6.1. Lighting and Rendering 10 6.1.1. Real-time Rendering of Heterogeneous Translucent Objects with Arbitrary Shapes 10 6.1.2.
    [Show full text]