├── .gitignore ├── LICENSE ├── README.md ├── docs ├── Graph NLU- Natural Language Understanding with Python and Neo4j.pdf └── IPA_Memory_Dan_Kondratyuk_2017.04.30.pdf ├── notebooks ├── babi_dialogue_ridge.ipynb ├── dynamic_memory_1.ipynb ├── dynamic_memory_2.ipynb ├── dynamic_memory_3.ipynb ├── dynamic_memory_4.ipynb ├── resources │ ├── qa1_single-supporting-fact_test.txt │ ├── qa1_single-supporting-fact_train.txt │ ├── qa2_two-supporting-facts_test.txt │ ├── qa2_two-supporting-facts_train.txt │ ├── qa3_three-supporting-facts_test.txt │ ├── qa3_three-supporting-facts_train.txt │ ├── qa6_yes-no-questions_test.txt │ ├── qa6_yes-no-questions_train.txt │ ├── restaurants_props.pkl │ └── utts_refs.pkl └── screenshots │ ├── dialog-system.png │ ├── global-and-local-list.png │ ├── local-list.png │ ├── mary-john-example.png │ ├── prezzo.png │ ├── qa2-multiple-list.png │ ├── simple-relation.png │ ├── state-graph-1.png │ ├── state-graph-2.png │ └── v4-mary.png └── requirements.txt /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by .ignore support plugin (hsz.mobi) 2 | ### Vim template 3 | # swap 4 | [._]*.s[a-w][a-z] 5 | [._]s[a-w][a-z] 6 | # session 7 | Session.vim 8 | # temporary 9 | .netrwhist 10 | *~ 11 | # auto-generated tag files 12 | tags 13 | 14 | ### Java template 15 | *.class 16 | 17 | # Mobile Tools for Java (J2ME) 18 | .mtj.tmp/ 19 | 20 | # Package Files # 21 | *.jar 22 | *.war 23 | *.ear 24 | 25 | # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml 26 | hs_err_pid* 27 | 28 | ### Maven template 29 | target/ 30 | pom.xml.tag 31 | pom.xml.releaseBackup 32 | pom.xml.versionsBackup 33 | pom.xml.next 34 | release.properties 35 | dependency-reduced-pom.xml 36 | buildNumber.properties 37 | .mvn/timing.properties 38 | 39 | ### VisualStudioCode template 40 | .vscode 41 | 42 | ### Gradle template 43 | .gradle 44 | build/ 45 | 46 | # Ignore Gradle GUI config 47 | gradle-app.setting 48 | 49 | # Avoid ignoring Gradle wrapper jar file (.jar files are usually ignored) 50 | !gradle-wrapper.jar 51 | 52 | # Cache of project 53 | .gradletasknamecache 54 | 55 | # # Work around https://youtrack.jetbrains.com/issue/IDEA-116898 56 | # gradle/wrapper/gradle-wrapper.properties 57 | 58 | ### JetBrains template 59 | # Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio and Webstorm 60 | # Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 61 | 62 | # User-specific stuff: 63 | .idea/workspace.xml 64 | .idea/tasks.xml 65 | .idea/dictionaries 66 | .idea/vcs.xml 67 | .idea/jsLibraryMappings.xml 68 | 69 | # Sensitive or high-churn files: 70 | .idea/dataSources.ids 71 | .idea/dataSources.xml 72 | .idea/dataSources.local.xml 73 | .idea/sqlDataSources.xml 74 | .idea/dynamic.xml 75 | .idea/uiDesigner.xml 76 | 77 | # Gradle: 78 | .idea/gradle.xml 79 | .idea/libraries 80 | 81 | # Mongo Explorer plugin: 82 | .idea/mongoSettings.xml 83 | 84 | ## File-based project format: 85 | *.iws 86 | 87 | ## Plugin-specific files: 88 | 89 | # IntelliJ 90 | /out/ 91 | .idea 92 | 93 | # mpeltonen/sbt-idea plugin 94 | .idea_modules/ 95 | 96 | # JIRA plugin 97 | atlassian-ide-plugin.xml 98 | 99 | # Crashlytics plugin (for Android Studio and IntelliJ) 100 | com_crashlytics_export_strings.xml 101 | crashlytics.properties 102 | crashlytics-build.properties 103 | fabric.properties 104 | 105 | ### Windows template 106 | # Windows image file caches 107 | Thumbs.db 108 | ehthumbs.db 109 | 110 | # Folder config file 111 | Desktop.ini 112 | 113 | # Recycle Bin used on file shares 114 | $RECYCLE.BIN/ 115 | 116 | # Windows Installer files 117 | *.cab 118 | *.msi 119 | *.msm 120 | *.msp 121 | 122 | # Windows shortcuts 123 | *.lnk 124 | 125 | ### SublimeText template 126 | # cache files for sublime text 127 | *.tmlanguage.cache 128 | *.tmPreferences.cache 129 | *.stTheme.cache 130 | 131 | # workspace files are user-specific 132 | *.sublime-workspace 133 | 134 | # project files should be checked into the repository, unless a significant 135 | # proportion of contributors will probably not be using SublimeText 136 | # *.sublime-project 137 | 138 | # sftp configuration file 139 | sftp-config.json 140 | 141 | # Package control specific files 142 | Package Control.last-run 143 | Package Control.ca-list 144 | Package Control.ca-bundle 145 | Package Control.system-ca-bundle 146 | Package Control.cache/ 147 | Package Control.ca-certs/ 148 | bh_unicode_properties.cache 149 | 150 | # Sublime-github package stores a github token in this file 151 | # https://packagecontrol.io/packages/sublime-github 152 | GitHub.sublime-settings 153 | 154 | ### Linux template 155 | # temporary files which can be created if a process still has a handle open of a deleted file 156 | .fuse_hidden* 157 | 158 | # KDE directory preferences 159 | .directory 160 | 161 | # Linux trash folder which might appear on any partition or disk 162 | .Trash-* 163 | 164 | ### Eclipse template 165 | 166 | .metadata 167 | bin/ 168 | tmp/ 169 | *.tmp 170 | *.bak 171 | *.swp 172 | *~.nib 173 | local.properties 174 | .settings/ 175 | .loadpath 176 | .recommenders 177 | 178 | # Eclipse Core 179 | .project 180 | 181 | # External tool builders 182 | .externalToolBuilders/ 183 | 184 | # Locally stored "Eclipse launch configurations" 185 | *.launch 186 | 187 | # PyDev specific (Python IDE for Eclipse) 188 | *.pydevproject 189 | 190 | # CDT-specific (C/C++ Development Tooling) 191 | .cproject 192 | 193 | # JDT-specific (Eclipse Java Development Tools) 194 | .classpath 195 | 196 | # Java annotation processor (APT) 197 | .factorypath 198 | 199 | # PDT-specific (PHP Development Tools) 200 | .buildpath 201 | 202 | # sbteclipse plugin 203 | .target 204 | 205 | # Tern plugin 206 | .tern-project 207 | 208 | # TeXlipse plugin 209 | .texlipse 210 | 211 | # STS (Spring Tool Suite) 212 | .springBeans 213 | 214 | # Code Recommenders 215 | .recommenders/ 216 | 217 | ### Project Specific 218 | 219 | .ipynb_checkpoints -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Dan Kondratyuk 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Graph NLU 2 | 3 | [](notebooks/dynamic_memory_1.ipynb) 4 | 5 | ## Motivation :bar_chart: 6 | 7 | Graph NLU uses graph databases as a means to represent natural language relationships flexibly and dynamically. 8 | 9 | The primary motivation for this project is to develop a way to understand natural language dialog in an interactive setting by remembering previous dialog states. [Virtual assistants](https://en.wikipedia.org/wiki/Virtual_assistant_(artificial_intelligence)) like Siri, Google Assistant, and Alexa have the common problem that they behave like amnesiacs, i.e., they do not remember much about previous interactions. 10 | 11 | One proposal to get around the memory problem is by representing the previous dialog states using a persistent graph. Because graphs offer a powerful and interpretable way of encoding high-level representations of entities and their associated relationships, an attractive proposition is to leverage them in processing natural language. Graph databases (e.g., [Neo4j](https://neo4j.com/)) offer a rich suite of tools to quickly construct such graphs and persist them over the long term. 12 | 13 | This project is in its research phase, hence all code in this repository is exploratory. The supplied Jupyter (iPython) notebooks do the following: 14 | 15 | 1. Examine several dialog domains 16 | 1. Explain some of the design considerations for using graphs to process natural language 17 | 1. Define models for solving a dialog domain 18 | 1. Evaluate these models for accuracy and usefulness 19 | 20 | Explanations behind each code snippet are given where possible. [Read the research paper (PDF)](docs/IPA_Memory_Dan_Kondratyuk_2017.04.30.pdf) discussing a more detailed approach to the personal assistant memory problem. 21 | 22 | ## Getting Started :traffic_light: 23 | 24 | - [Video talk overview (YouTube)](https://www.youtube.com/watch?v=mTCqQ2e08Q8) 25 | - [Video talk slides (PDF)](docs/Graph%20NLU-%20Natural%20Language%20Understanding%20with%20Python%20and%20Neo4j.pdf) 26 | 27 | Get an introduction to this project by viewing the supplied Jupyter notebooks in GitHub under the `notebooks` directory: 28 | 29 | - [dynamic_memory_1](notebooks/dynamic_memory_1.ipynb) - Evaluates the bAbI QA tasks using Neo4j queries 30 | 31 | ## Running the Code :snake: 32 | 33 | The Python code uses the Neo4j graph database to store and query natural language relationships. In addition, several processing steps will require popular Python data processing tools like `pandas`, `numpy`, `sklearn`, and `nltk`. 34 | 35 | ### Prerequisites 36 | 37 | 1. Make sure these are on your system: 38 | 39 | - [Python](https://www.python.org/downloads/) (3.5+) 40 | - [Neo4j](https://neo4j.com/download/community-edition/) (3.1+) 41 | 42 | 2. Install the python packages in `requirements.txt` if you don't have them already. 43 | 44 | ```bash 45 | pip install -r ./requirements.txt 46 | ``` 47 | 48 | ### Running Jupyter Notebooks 49 | 50 | 3. Clone the repository. 51 | 52 | ```bash 53 | git clone https://github.com/Hyperparticle/graph-nlu.git 54 | cd ./graph-nlu/notebooks 55 | ``` 56 | 57 | 4. Run the iPython notebooks with Jupyter. 58 | 59 | ```bash 60 | jupyter notebook 61 | ``` 62 | 63 | 5. Get an introduction to the project with [dynamic_memory_1](notebooks/dynamic_memory_1.ipynb). 64 | 65 | ## Contributing :mega: 66 | 67 | Interested in the project? We'd love to hear your ideas! Open a [GitHub issue](https://github.com/Hyperparticle/graph-nlu/issues) with your comments. 68 | 69 | ## About :clipboard: 70 | 71 | Created by [Dan Kondratyuk](https://hyperparticle.com/about/), a member of [Speech, Language & Interactive Machines (SLIM)](http://coen.boisestate.edu/slim/) at Boise State University. 72 | -------------------------------------------------------------------------------- /docs/Graph NLU- Natural Language Understanding with Python and Neo4j.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hyperparticle/graph-nlu/2aa7ef3ce67e4dadd5d1b89b9d7bf40d3d53d9fc/docs/Graph NLU- Natural Language Understanding with Python and Neo4j.pdf -------------------------------------------------------------------------------- /docs/IPA_Memory_Dan_Kondratyuk_2017.04.30.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Hyperparticle/graph-nlu/2aa7ef3ce67e4dadd5d1b89b9d7bf40d3d53d9fc/docs/IPA_Memory_Dan_Kondratyuk_2017.04.30.pdf -------------------------------------------------------------------------------- /notebooks/dynamic_memory_1.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": { 6 | "deletable": true, 7 | "editable": true 8 | }, 9 | "source": [ 10 | "# Memory Representation in Dialogue Systems\n", 11 | "\n", 12 | "The following notebook is the result of an NLP project that explores the question, \"How could interaction be stored in memory, and how can that information be leveraged for further use?\" \n", 13 | "\n", 14 | "[Dialog systems](https://en.wikipedia.org/wiki/Dialog_system) can be quite useful, but have difficulty keeping track of concepts and entities dynamically. Commercial implementations among the likes of Siri, Google Assistant, and Alexa are great for performing simple tasks, but fall short when remembering ad-hoc relationships that regularly present themselves in conversation. For more information on dialogue systems, graph databases, and ontologies as they relate to this project, see the white paper entitled [IPA_Memory](/files/docs/IPA_Memory_Dan_Kondratyuk_2017.04.30.pdf) under the `docs` directory of this repository.\n", 15 | "\n", 16 | "To enhance the capabilities of dialogue systems, this notebook will provide a simple software implementation of a model that is intended to by dynamic, incremental, flexible, and interpretable. By forming high-level concepts that evolve over time, this model will evaluate the dialogue system's ability to understand user input. This notebook will show how such a system can update its internal state based on natural language facts, and retrieve results based on natural language questions. See the white paper for more details on the rationale behind these design decisions.\n", 17 | "\n", 18 | "The code below is written in Python, and uses a [Neo4j Graph Database](https://neo4j.com/product/) to provide non-volatile storage and efficient querying capabilities.\n", 19 | "\n", 20 | "The test corpus is supplied by the [bAbI Tasks Data 1-20 (v1.2)](https://research.fb.com/downloads/babi/). It contains sequences of English sentences to provide the system knowledge of a simple domain involving characters moving to different rooms and interacting with objects. Questions are inserted periodically to evaluate that the system is keeping track of these relationships accurately.\n", 21 | "\n", 22 | "## Prerequisites to Running this Notebook\n", 23 | "- [Python](https://www.python.org/downloads/) (3.5+)\n", 24 | "- Python packages (install via pip): `pandas`, `numpy`, `nltk`, `scikit-learn`, `neo4j-driver`\n", 25 | "- [Neo4j](https://neo4j.com/download/) (3.1+)" 26 | ] 27 | }, 28 | { 29 | "cell_type": "markdown", 30 | "metadata": { 31 | "deletable": true, 32 | "editable": true 33 | }, 34 | "source": [ 35 | "# Part 1: bAbI QA 1\n", 36 | "\n", 37 | "## Process the Text\n", 38 | "\n", 39 | "### Import DataFrames\n", 40 | "First we will use `pandas` to import `qa1_single-supporting-fact_train.txt` from our corpus into a DataFrame called `data`. Every line in this document represents one sentence, which will be split using `nltk`'s word tokenizer." 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": 1, 46 | "metadata": { 47 | "collapsed": true, 48 | "deletable": true, 49 | "editable": true 50 | }, 51 | "outputs": [], 52 | "source": [ 53 | "# Import the necessary packages\n", 54 | "import pandas as pd\n", 55 | "import numpy as np\n", 56 | "import nltk\n", 57 | "from sklearn.metrics import accuracy_score" 58 | ] 59 | }, 60 | { 61 | "cell_type": "code", 62 | "execution_count": 2, 63 | "metadata": { 64 | "collapsed": false, 65 | "deletable": true, 66 | "editable": true 67 | }, 68 | "outputs": [ 69 | { 70 | "name": "stdout", 71 | "output_type": "stream", 72 | "text": [ 73 | "showing info https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml\n" 74 | ] 75 | }, 76 | { 77 | "data": { 78 | "text/plain": [ 79 | "True" 80 | ] 81 | }, 82 | "execution_count": 2, 83 | "metadata": {}, 84 | "output_type": "execute_result" 85 | } 86 | ], 87 | "source": [ 88 | "# Download NLTK packages\n", 89 | "# An OS window should pop up for you to download the appropriate packages\n", 90 | "# Select all-nltk and click on the download button. Once download has finished exit the window and continue.\n", 91 | "nltk.download()" 92 | ] 93 | }, 94 | { 95 | "cell_type": "code", 96 | "execution_count": 3, 97 | "metadata": { 98 | "collapsed": false, 99 | "deletable": true, 100 | "editable": true 101 | }, 102 | "outputs": [], 103 | "source": [ 104 | "# Read the bAbI data as CSV\n", 105 | "filename = 'resources/qa1_single-supporting-fact_train.txt'\n", 106 | "data_qa1 = pd.read_csv(filename, delimiter='\\t', names=['sentence', 'answer', 'factid'])\n", 107 | "data_qa1 = data_qa1.fillna('')" 108 | ] 109 | }, 110 | { 111 | "cell_type": "markdown", 112 | "metadata": { 113 | "deletable": true, 114 | "editable": true 115 | }, 116 | "source": [ 117 | "The cell below shows what the input data looks like. Every `sentence` in this frame can either be a factual statement, or a question about the preceeding statements. Each statement describes four characters moving between six different rooms. The questions periodically ask the room in which a person is currently in, and the objective is to answer them all correctly, matching the corresponding `answer` column (it is blank if the sentence is a statement). The `factid` column indicates the index of the supporting facts for each answer, but we won't be needing it.\n", 118 | "\n", 119 | "Due to the nature of the model, training will not be necessary to answer each question. Therefore, the entire document will be used for test evaluation." 120 | ] 121 | }, 122 | { 123 | "cell_type": "code", 124 | "execution_count": 4, 125 | "metadata": { 126 | "collapsed": false, 127 | "deletable": true, 128 | "editable": true 129 | }, 130 | "outputs": [ 131 | { 132 | "data": { 133 | "text/html": [ 134 | "
\n", 152 | " | sentence | \n", 153 | "answer | \n", 154 | "factid | \n", 155 | "
---|---|---|---|
0 | \n", 160 | "1 Mary moved to the bathroom. | \n", 161 | "\n", 162 | " | \n", 163 | " |
1 | \n", 166 | "2 John went to the hallway. | \n", 167 | "\n", 168 | " | \n", 169 | " |
2 | \n", 172 | "3 Where is Mary? | \n", 173 | "bathroom | \n", 174 | "1 | \n", 175 | "
3 | \n", 178 | "4 Daniel went back to the hallway. | \n", 179 | "\n", 180 | " | \n", 181 | " |
4 | \n", 184 | "5 Sandra moved to the garden. | \n", 185 | "\n", 186 | " | \n", 187 | " |
5 | \n", 190 | "6 Where is Daniel? | \n", 191 | "hallway | \n", 192 | "4 | \n", 193 | "
\n", 280 | " | sentence | \n", 281 | "answer | \n", 282 | "type | \n", 283 | "
---|---|---|---|
0 | \n", 288 | "[Mary, moved, to, the, bathroom, .] | \n", 289 | "\n", 290 | " | S | \n", 291 | "
1 | \n", 294 | "[John, went, to, the, hallway, .] | \n", 295 | "\n", 296 | " | S | \n", 297 | "
2 | \n", 300 | "[Where, is, Mary, ?] | \n", 301 | "bathroom | \n", 302 | "Q | \n", 303 | "
3 | \n", 306 | "[Daniel, went, back, to, the, hallway, .] | \n", 307 | "\n", 308 | " | S | \n", 309 | "
4 | \n", 312 | "[Sandra, moved, to, the, garden, .] | \n", 313 | "\n", 314 | " | S | \n", 315 | "
5 | \n", 318 | "[Where, is, Daniel, ?] | \n", 319 | "hallway | \n", 320 | "Q | \n", 321 | "
\n", 409 | " | sentence | \n", 410 | "
---|---|
0 | \n", 415 | "[Mary, moved, to, the, bathroom, .] | \n", 416 | "
1 | \n", 419 | "[John, went, to, the, hallway, .] | \n", 420 | "
2 | \n", 423 | "[Daniel, went, back, to, the, hallway, .] | \n", 424 | "
3 | \n", 427 | "[Sandra, moved, to, the, garden, .] | \n", 428 | "
\n", 480 | " | sentence | \n", 481 | "answer | \n", 482 | "
---|---|---|
0 | \n", 487 | "[Where, is, Mary, ?] | \n", 488 | "bathroom | \n", 489 | "
1 | \n", 492 | "[Where, is, Daniel, ?] | \n", 493 | "hallway | \n", 494 | "
\n", 573 | " | sentence | \n", 574 | "tag | \n", 575 | "
---|---|---|
0 | \n", 580 | "[Mary, moved, to, the, bathroom, .] | \n", 581 | "[(Mary, NNP), (moved, VBD), (to, TO), (the, DT... | \n", 582 | "
1 | \n", 585 | "[John, went, to, the, hallway, .] | \n", 586 | "[(John, NNP), (went, VBD), (to, TO), (the, DT)... | \n", 587 | "
2 | \n", 590 | "[Where, is, Mary, ?] | \n", 591 | "[(Where, WRB), (is, VBZ), (Mary, NNP), (?, .)] | \n", 592 | "
3 | \n", 595 | "[Daniel, went, back, to, the, hallway, .] | \n", 596 | "[(Daniel, NNP), (went, VBD), (back, RB), (to, ... | \n", 597 | "
4 | \n", 600 | "[Sandra, moved, to, the, garden, .] | \n", 601 | "[(Sandra, NNP), (moved, VBD), (to, TO), (the, ... | \n", 602 | "
\n", 779 | " | sentence | \n", 780 | "extracted | \n", 781 | "
---|---|---|
0 | \n", 786 | "[Mary, moved, to, the, bathroom, .] | \n", 787 | "(Mary, moved, bathroom) | \n", 788 | "
1 | \n", 791 | "[John, went, to, the, hallway, .] | \n", 792 | "(John, went, hallway) | \n", 793 | "
2 | \n", 796 | "[Where, is, Mary, ?] | \n", 797 | "Mary | \n", 798 | "
3 | \n", 801 | "[Daniel, went, back, to, the, hallway, .] | \n", 802 | "(Daniel, went, hallway) | \n", 803 | "
4 | \n", 806 | "[Sandra, moved, to, the, garden, .] | \n", 807 | "(Sandra, moved, garden) | \n", 808 | "
\n", 919 | " | sentence | \n", 920 | "tag | \n", 921 | "extracted | \n", 922 | "
---|---|---|---|
3 | \n", 927 | "[Sandra, moved, to, the, garden, .] | \n", 928 | "[(Sandra, NNP), (moved, VBD), (to, TO), (the, ... | \n", 929 | "(Sandra, moved, garden) | \n", 930 | "
5 | \n", 933 | "[Sandra, journeyed, to, the, bathroom, .] | \n", 934 | "[(Sandra, NNP), (journeyed, VBD), (to, TO), (t... | \n", 935 | "(Sandra, journeyed, bathroom) | \n", 936 | "
10 | \n", 939 | "[Sandra, travelled, to, the, office, .] | \n", 940 | "[(Sandra, NNP), (travelled, VBD), (to, TO), (t... | \n", 941 | "(Sandra, travelled, office) | \n", 942 | "
\n", 1038 | " | sentence | \n", 1039 | "tag | \n", 1040 | "extracted | \n", 1041 | "
---|---|---|---|
1999 | \n", 1046 | "[Daniel, went, to, the, garden, .] | \n", 1047 | "[(Daniel, NNP), (went, VBD), (to, TO), (the, D... | \n", 1048 | "(Daniel, went, garden) | \n", 1049 | "
1996 | \n", 1052 | "[Daniel, travelled, to, the, kitchen, .] | \n", 1053 | "[(Daniel, NNP), (travelled, VBD), (to, TO), (t... | \n", 1054 | "(Daniel, travelled, kitchen) | \n", 1055 | "
1992 | \n", 1058 | "[Daniel, moved, to, the, office, .] | \n", 1059 | "[(Daniel, NNP), (moved, VBD), (to, TO), (the, ... | \n", 1060 | "(Daniel, moved, office) | \n", 1061 | "
\n", 1492 | " | sentence | \n", 1493 | "tag | \n", 1494 | "extracted | \n", 1495 | "
---|---|---|---|
1994 | \n", 1500 | "[Mary, journeyed, to, the, kitchen, .] | \n", 1501 | "[(Mary, NNP), (journeyed, VBD), (to, TO), (the... | \n", 1502 | "(Mary, journeyed, kitchen) | \n", 1503 | "
\n", 1650 | " | sentence | \n", 1651 | "tag | \n", 1652 | "extracted | \n", 1653 | "
---|---|---|---|
1995 | \n", 1658 | "[John, went, back, to, the, bedroom, .] | \n", 1659 | "[(John, NNP), (went, VBD), (back, RB), (to, TO... | \n", 1660 | "(John, went, bedroom) | \n", 1661 | "
1989 | \n", 1664 | "[John, went, back, to, the, garden, .] | \n", 1665 | "[(John, NNP), (went, VBD), (back, RB), (to, TO... | \n", 1666 | "(John, went, garden) | \n", 1667 | "
1986 | \n", 1670 | "[John, went, back, to, the, office, .] | \n", 1671 | "[(John, NNP), (went, VBD), (back, RB), (to, TO... | \n", 1672 | "(John, went, office) | \n", 1673 | "
1982 | \n", 1676 | "[John, journeyed, to, the, bedroom, .] | \n", 1677 | "[(John, NNP), (journeyed, NN), (to, TO), (the,... | \n", 1678 | "(John, journeyed, bedroom) | \n", 1679 | "
1979 | \n", 1682 | "[John, travelled, to, the, hallway, .] | \n", 1683 | "[(John, NNP), (travelled, VBD), (to, TO), (the... | \n", 1684 | "(John, travelled, hallway) | \n", 1685 | "
\n", 69 | " | text | \n", 70 | "bot | \n", 71 | "o | \n", 72 | "ind | \n", 73 | "mask | \n", 74 | "gid | \n", 75 | "target | \n", 76 | "
---|---|---|---|---|---|---|---|
0 | \n", 81 | "[i, want, a, moderately, priced, restaurant, i... | \n", 82 | "api_call R_cuisine west moderate | \n", 83 | "trn | \n", 84 | "2 | \n", 85 | "True | \n", 86 | "2 | \n", 87 | "prezzo | \n", 88 | "
2 | \n", 91 | "[cheap, restaurant, in, the, north, part, of, ... | \n", 92 | "api_call R_cuisine north cheap | \n", 93 | "trn | \n", 94 | "2 | \n", 95 | "True | \n", 96 | "11 | \n", 97 | "da_vinci_pizzeria | \n", 98 | "
3 | \n", 101 | "[cheap, restaurant, in, the, south, part, of, ... | \n", 102 | "api_call R_cuisine south cheap | \n", 103 | "trn | \n", 104 | "2 | \n", 105 | "True | \n", 106 | "12 | \n", 107 | "the_lucky_star | \n", 108 | "
4 | \n", 111 | "[cheap, restaurant, serving, indian, food] | \n", 112 | "api_call indian R_location cheap | \n", 113 | "trn | \n", 114 | "2 | \n", 115 | "True | \n", 116 | "15 | \n", 117 | "the_gandhi | \n", 118 | "
5 | \n", 121 | "[thai, food] | \n", 122 | "api_call thai R_location R_price | \n", 123 | "trn | \n", 124 | "2 | \n", 125 | "True | \n", 126 | "22 | \n", 127 | "bangkok_city | \n", 128 | "
\n", 173 | " | rname | \n", 174 | "attr_key | \n", 175 | "attr_value | \n", 176 | "
---|---|---|---|
3 | \n", 181 | "saint_johns_chop_house | \n", 182 | "R_cuisine | \n", 183 | "british | \n", 184 | "
4 | \n", 187 | "saint_johns_chop_house | \n", 188 | "R_location | \n", 189 | "west | \n", 190 | "
7 | \n", 193 | "saint_johns_chop_house | \n", 194 | "R_price | \n", 195 | "moderate | \n", 196 | "
10 | \n", 199 | "prezzo | \n", 200 | "R_cuisine | \n", 201 | "italian | \n", 202 | "
11 | \n", 205 | "prezzo | \n", 206 | "R_location | \n", 207 | "west | \n", 208 | "
\n", 316 | " | text | \n", 317 | "frame | \n", 318 | "
---|---|---|
0 | \n", 323 | "[i, want, a, moder, price, restaur, in, the, w... | \n", 324 | "(r_cuisin, west, moder) | \n", 325 | "
1 | \n", 328 | "[cheap, restaur, in, the, north, part, of, town] | \n", 329 | "(r_cuisin, north, cheap) | \n", 330 | "
2 | \n", 333 | "[cheap, restaur, in, the, south, part, of, town] | \n", 334 | "(r_cuisin, south, cheap) | \n", 335 | "
3 | \n", 338 | "[cheap, restaur, serv, indian, food] | \n", 339 | "(indian, r_locat, cheap) | \n", 340 | "
4 | \n", 343 | "[thai, food] | \n", 344 | "(thai, r_locat, r_price) | \n", 345 | "
\n", 397 | " | restaurant | \n", 398 | "key | \n", 399 | "value | \n", 400 | "
---|---|---|---|
3 | \n", 405 | "saint_johns_chop_house | \n", 406 | "r_cuisin | \n", 407 | "british | \n", 408 | "
4 | \n", 411 | "saint_johns_chop_house | \n", 412 | "r_locat | \n", 413 | "west | \n", 414 | "
7 | \n", 417 | "saint_johns_chop_house | \n", 418 | "r_price | \n", 419 | "moder | \n", 420 | "
10 | \n", 423 | "prezzo | \n", 424 | "r_cuisin | \n", 425 | "italian | \n", 426 | "
11 | \n", 429 | "prezzo | \n", 430 | "r_locat | \n", 431 | "west | \n", 432 | "
\n", 868 | " | text | \n", 869 | "frame | \n", 870 | "slots | \n", 871 | "predicted | \n", 872 | "
---|---|---|---|---|
0 | \n", 877 | "[i, want, a, moder, price, restaur, in, the, w... | \n", 878 | "(r_cuisin, west, moder) | \n", 879 | "[(r_price, moder), (r_locat, west)] | \n", 880 | "(r_cuisin, west, moder) | \n", 881 | "
1 | \n", 884 | "[cheap, restaur, in, the, north, part, of, town] | \n", 885 | "(r_cuisin, north, cheap) | \n", 886 | "[(r_price, cheap), (r_locat, north)] | \n", 887 | "(r_cuisin, north, cheap) | \n", 888 | "
2 | \n", 891 | "[cheap, restaur, in, the, south, part, of, town] | \n", 892 | "(r_cuisin, south, cheap) | \n", 893 | "[(r_price, cheap), (r_locat, south)] | \n", 894 | "(r_cuisin, south, cheap) | \n", 895 | "
3 | \n", 898 | "[cheap, restaur, serv, indian, food] | \n", 899 | "(indian, r_locat, cheap) | \n", 900 | "[(r_price, cheap), (r_cuisin, indian)] | \n", 901 | "(indian, r_locat, cheap) | \n", 902 | "
4 | \n", 905 | "[thai, food] | \n", 906 | "(thai, r_locat, r_price) | \n", 907 | "[(r_cuisin, thai)] | \n", 908 | "(thai, r_locat, r_price) | \n", 909 | "
\n", 1036 | " | text | \n", 1037 | "frame | \n", 1038 | "slots | \n", 1039 | "predicted | \n", 1040 | "
---|---|---|---|---|
1 | \n", 1045 | "[cheap, restaur, in, the, north, part, of, town] | \n", 1046 | "(r_cuisin, north, cheap) | \n", 1047 | "[(r_price, cheap), (r_locat, north)] | \n", 1048 | "(r_cuisin, north, cheap) | \n", 1049 | "
2 | \n", 1052 | "[cheap, restaur, in, the, south, part, of, town] | \n", 1053 | "(r_cuisin, south, cheap) | \n", 1054 | "[(r_price, cheap), (r_locat, south)] | \n", 1055 | "(r_cuisin, south, cheap) | \n", 1056 | "
3 | \n", 1059 | "[cheap, restaur, serv, indian, food] | \n", 1060 | "(indian, r_locat, cheap) | \n", 1061 | "[(r_price, cheap), (r_cuisin, indian)] | \n", 1062 | "(indian, r_locat, cheap) | \n", 1063 | "
7 | \n", 1066 | "[im, look, for, a, cheap, restaur, in, the, no... | \n", 1067 | "(r_cuisin, north, cheap) | \n", 1068 | "[(r_price, cheap), (r_locat, north)] | \n", 1069 | "(r_cuisin, north, cheap) | \n", 1070 | "
10 | \n", 1073 | "[cheap, restaur] | \n", 1074 | "(r_cuisin, r_locat, cheap) | \n", 1075 | "[(r_price, cheap)] | \n", 1076 | "(r_cuisin, r_locat, cheap) | \n", 1077 | "
12 | \n", 1080 | "[i, want, a, cheap, restaur, in, the, west, pa... | \n", 1081 | "(r_cuisin, west, cheap) | \n", 1082 | "[(r_price, cheap), (r_locat, west)] | \n", 1083 | "(r_cuisin, west, cheap) | \n", 1084 | "
14 | \n", 1087 | "[i, am, look, for, a, cheap, restaur, in, the,... | \n", 1088 | "(r_cuisin, east, cheap) | \n", 1089 | "[(r_price, cheap), (r_locat, east)] | \n", 1090 | "(r_cuisin, east, cheap) | \n", 1091 | "
15 | \n", 1094 | "[im, look, for, a, cheap, restaur, serv, inter... | \n", 1095 | "(intern, r_locat, cheap) | \n", 1096 | "[(r_price, cheap), (r_cuisin, intern)] | \n", 1097 | "(intern, r_locat, cheap) | \n", 1098 | "
17 | \n", 1101 | "[look, for, a, cheap, restaur, in, the, south,... | \n", 1102 | "(r_cuisin, south, cheap) | \n", 1103 | "[(r_price, cheap), (r_locat, south)] | \n", 1104 | "(r_cuisin, south, cheap) | \n", 1105 | "
20 | \n", 1108 | "[look, for, someth, cheap, in, the, north, sid... | \n", 1109 | "(r_cuisin, north, cheap) | \n", 1110 | "[(r_price, cheap), (r_locat, north)] | \n", 1111 | "(r_cuisin, north, cheap) | \n", 1112 | "
33 | \n", 1115 | "[im, look, for, a, cheap, restaur, in, the, so... | \n", 1116 | "(r_cuisin, r_locat, cheap) | \n", 1117 | "[(r_price, cheap), (r_locat, south)] | \n", 1118 | "(r_cuisin, south, cheap) | \n", 1119 | "
40 | \n", 1122 | "[i, want, a, cheap, restaur, in, the, south, p... | \n", 1123 | "(r_cuisin, r_locat, cheap) | \n", 1124 | "[(r_price, cheap), (r_locat, south)] | \n", 1125 | "(r_cuisin, south, cheap) | \n", 1126 | "
44 | \n", 1129 | "[i, need, a, cheap, restaur, in, the, south, p... | \n", 1130 | "(r_cuisin, south, cheap) | \n", 1131 | "[(r_price, cheap), (r_locat, south)] | \n", 1132 | "(r_cuisin, south, cheap) | \n", 1133 | "
46 | \n", 1136 | "[i, want, a, cheap, restaur, in, the, east, pa... | \n", 1137 | "(r_cuisin, east, cheap) | \n", 1138 | "[(r_price, cheap), (r_locat, east)] | \n", 1139 | "(r_cuisin, east, cheap) | \n", 1140 | "
57 | \n", 1143 | "[breath, id, like, a, cheap, restaur, in, the,... | \n", 1144 | "(r_cuisin, south, cheap) | \n", 1145 | "[(r_price, cheap), (r_locat, south)] | \n", 1146 | "(r_cuisin, south, cheap) | \n", 1147 | "
61 | \n", 1150 | "[im, look, for, a, cheap, restaur, in, the, we... | \n", 1151 | "(r_cuisin, west, cheap) | \n", 1152 | "[(r_price, cheap), (r_locat, west)] | \n", 1153 | "(r_cuisin, west, cheap) | \n", 1154 | "
62 | \n", 1157 | "[i, would, like, to, find, a, cheap, restaur, ... | \n", 1158 | "(r_cuisin, south, cheap) | \n", 1159 | "[(r_price, cheap), (r_locat, south)] | \n", 1160 | "(r_cuisin, south, cheap) | \n", 1161 | "
68 | \n", 1164 | "[cheap, restaur, in, the, north, part, of, town] | \n", 1165 | "(r_cuisin, north, cheap) | \n", 1166 | "[(r_price, cheap), (r_locat, north)] | \n", 1167 | "(r_cuisin, north, cheap) | \n", 1168 | "
71 | \n", 1171 | "[i, would, like, a, cheap, restaur, in, the, n... | \n", 1172 | "(r_cuisin, north, cheap) | \n", 1173 | "[(r_price, cheap), (r_locat, north)] | \n", 1174 | "(r_cuisin, north, cheap) | \n", 1175 | "
72 | \n", 1178 | "[i, would, like, a, cheap, restaur, in, the, w... | \n", 1179 | "(r_cuisin, west, cheap) | \n", 1180 | "[(r_price, cheap), (r_locat, west)] | \n", 1181 | "(r_cuisin, west, cheap) | \n", 1182 | "
76 | \n", 1185 | "[im, look, for, a, cheap, restaur, in, the, we... | \n", 1186 | "(r_cuisin, west, cheap) | \n", 1187 | "[(r_price, cheap), (r_locat, west)] | \n", 1188 | "(r_cuisin, west, cheap) | \n", 1189 | "
82 | \n", 1192 | "[im, look, for, a, cheap, restaur, in, the, so... | \n", 1193 | "(r_cuisin, south, cheap) | \n", 1194 | "[(r_price, cheap), (r_locat, south)] | \n", 1195 | "(r_cuisin, south, cheap) | \n", 1196 | "
83 | \n", 1199 | "[im, look, for, a, cheap, restaur, in, the, ea... | \n", 1200 | "(r_cuisin, east, cheap) | \n", 1201 | "[(r_price, cheap), (r_locat, east)] | \n", 1202 | "(r_cuisin, east, cheap) | \n", 1203 | "
84 | \n", 1206 | "[cheap, restaur, serv, spanish, food] | \n", 1207 | "(spanish, r_locat, cheap) | \n", 1208 | "[(r_price, cheap), (r_cuisin, spanish)] | \n", 1209 | "(spanish, r_locat, cheap) | \n", 1210 | "
86 | \n", 1213 | "[im, look, for, a, cheap, restaur, in, the, no... | \n", 1214 | "(r_cuisin, north, cheap) | \n", 1215 | "[(r_price, cheap), (r_locat, north)] | \n", 1216 | "(r_cuisin, north, cheap) | \n", 1217 | "
89 | \n", 1220 | "[im, look, for, a, cheap, restaur, in, the, we... | \n", 1221 | "(r_cuisin, west, cheap) | \n", 1222 | "[(r_price, cheap), (r_locat, west)] | \n", 1223 | "(r_cuisin, west, cheap) | \n", 1224 | "
92 | \n", 1227 | "[im, look, for, a, cheap, restaur, in, the, ea... | \n", 1228 | "(r_cuisin, east, cheap) | \n", 1229 | "[(r_price, cheap), (r_locat, east)] | \n", 1230 | "(r_cuisin, east, cheap) | \n", 1231 | "
96 | \n", 1234 | "[i, need, a, cheap, restaur, in, the, west, pa... | \n", 1235 | "(r_cuisin, west, cheap) | \n", 1236 | "[(r_price, cheap), (r_locat, west)] | \n", 1237 | "(r_cuisin, west, cheap) | \n", 1238 | "
98 | \n", 1241 | "[im, look, for, a, cheap, restaur, in, the, no... | \n", 1242 | "(r_cuisin, north, cheap) | \n", 1243 | "[(r_price, cheap), (r_locat, north)] | \n", 1244 | "(r_cuisin, north, cheap) | \n", 1245 | "
99 | \n", 1248 | "[im, look, for, a, cheap, restaur, in, the, no... | \n", 1249 | "(r_cuisin, north, cheap) | \n", 1250 | "[(r_price, cheap), (r_locat, north)] | \n", 1251 | "(r_cuisin, north, cheap) | \n", 1252 | "
... | \n", 1255 | "... | \n", 1256 | "... | \n", 1257 | "... | \n", 1258 | "... | \n", 1259 | "
337 | \n", 1262 | "[look, for, a, cheap, restaur, in, the, east, ... | \n", 1263 | "(r_cuisin, east, cheap) | \n", 1264 | "[(r_price, cheap), (r_locat, east)] | \n", 1265 | "(r_cuisin, east, cheap) | \n", 1266 | "
340 | \n", 1269 | "[cheap, restaur, west, part, of, town] | \n", 1270 | "(r_cuisin, west, cheap) | \n", 1271 | "[(r_price, cheap), (r_locat, west)] | \n", 1272 | "(r_cuisin, west, cheap) | \n", 1273 | "
343 | \n", 1276 | "[im, look, for, a, cheap, restaur, and, it, sh... | \n", 1277 | "(r_cuisin, north, cheap) | \n", 1278 | "[(r_price, cheap), (r_locat, north)] | \n", 1279 | "(r_cuisin, north, cheap) | \n", 1280 | "
346 | \n", 1283 | "[im, look, for, a, cheap, restaur, in, the, we... | \n", 1284 | "(r_cuisin, west, cheap) | \n", 1285 | "[(r_price, cheap), (r_locat, west)] | \n", 1286 | "(r_cuisin, west, cheap) | \n", 1287 | "
350 | \n", 1290 | "[cheap, restaur, south, part, of, town] | \n", 1291 | "(r_cuisin, south, cheap) | \n", 1292 | "[(r_price, cheap), (r_locat, south)] | \n", 1293 | "(r_cuisin, south, cheap) | \n", 1294 | "
351 | \n", 1297 | "[iam, look, for, a, cheap, restaur, and, it, s... | \n", 1298 | "(r_cuisin, north, cheap) | \n", 1299 | "[(r_price, cheap), (r_locat, north)] | \n", 1300 | "(r_cuisin, north, cheap) | \n", 1301 | "
352 | \n", 1304 | "[uh, i, want, a, cheap, restaur, and, it, shou... | \n", 1305 | "(r_cuisin, north, cheap) | \n", 1306 | "[(r_price, cheap), (r_locat, north)] | \n", 1307 | "(r_cuisin, north, cheap) | \n", 1308 | "
353 | \n", 1311 | "[im, look, for, a, cheap, restaur, in, the, so... | \n", 1312 | "(r_cuisin, south, cheap) | \n", 1313 | "[(r_price, cheap), (r_locat, south)] | \n", 1314 | "(r_cuisin, south, cheap) | \n", 1315 | "
354 | \n", 1318 | "[i, would, like, a, cheap, restaur, in, the, s... | \n", 1319 | "(r_cuisin, r_locat, cheap) | \n", 1320 | "[(r_price, cheap), (r_locat, south)] | \n", 1321 | "(r_cuisin, south, cheap) | \n", 1322 | "
356 | \n", 1325 | "[can, i, have, a, cheap, restaur, in, the, wes... | \n", 1326 | "(r_cuisin, west, cheap) | \n", 1327 | "[(r_price, cheap), (r_locat, west)] | \n", 1328 | "(r_cuisin, west, cheap) | \n", 1329 | "
358 | \n", 1332 | "[i, am, look, for, a, cheap, restaur, in, the,... | \n", 1333 | "(r_cuisin, west, cheap) | \n", 1334 | "[(r_price, cheap), (r_locat, west)] | \n", 1335 | "(r_cuisin, west, cheap) | \n", 1336 | "
360 | \n", 1339 | "[a, want, a, cheap, restaur, in, the, north, p... | \n", 1340 | "(r_cuisin, north, cheap) | \n", 1341 | "[(r_price, cheap), (r_locat, north)] | \n", 1342 | "(r_cuisin, north, cheap) | \n", 1343 | "
365 | \n", 1346 | "[cheap, restaur, in, th, east, part, of, town] | \n", 1347 | "(r_cuisin, east, cheap) | \n", 1348 | "[(r_price, cheap), (r_locat, east)] | \n", 1349 | "(r_cuisin, east, cheap) | \n", 1350 | "
366 | \n", 1353 | "[im, look, for, a, cheap, restaur, and, it, sh... | \n", 1354 | "(r_cuisin, east, cheap) | \n", 1355 | "[(r_price, cheap), (r_locat, east)] | \n", 1356 | "(r_cuisin, east, cheap) | \n", 1357 | "
369 | \n", 1360 | "[cheap, restaur, in, th, east, part, of, town] | \n", 1361 | "(r_cuisin, east, cheap) | \n", 1362 | "[(r_price, cheap), (r_locat, east)] | \n", 1363 | "(r_cuisin, east, cheap) | \n", 1364 | "
371 | \n", 1367 | "[cheap, restaur, in, the, east, part, of, town] | \n", 1368 | "(r_cuisin, east, cheap) | \n", 1369 | "[(r_price, cheap), (r_locat, east)] | \n", 1370 | "(r_cuisin, east, cheap) | \n", 1371 | "
372 | \n", 1374 | "[im, look, for, a, cheap, restaur, in, the, ea... | \n", 1375 | "(r_cuisin, east, cheap) | \n", 1376 | "[(r_price, cheap), (r_locat, east)] | \n", 1377 | "(r_cuisin, east, cheap) | \n", 1378 | "
374 | \n", 1381 | "[look, for, someth, cheap, on, the, east, part... | \n", 1382 | "(r_cuisin, east, cheap) | \n", 1383 | "[(r_price, cheap), (r_locat, east)] | \n", 1384 | "(r_cuisin, east, cheap) | \n", 1385 | "
377 | \n", 1388 | "[im, look, for, a, cheap, restaur, serv, medit... | \n", 1389 | "(mediterranean, r_locat, cheap) | \n", 1390 | "[(r_price, cheap), (r_cuisin, mediterranean)] | \n", 1391 | "(mediterranean, r_locat, cheap) | \n", 1392 | "
378 | \n", 1395 | "[im, look, for, a, cheap, restaur, in, the, so... | \n", 1396 | "(r_cuisin, south, cheap) | \n", 1397 | "[(r_price, cheap), (r_locat, south)] | \n", 1398 | "(r_cuisin, south, cheap) | \n", 1399 | "
384 | \n", 1402 | "[im, look, for, a, cheap, restaur, that, serv,... | \n", 1403 | "(vietnames, r_locat, cheap) | \n", 1404 | "[(r_price, cheap), (r_cuisin, vietnames)] | \n", 1405 | "(vietnames, r_locat, cheap) | \n", 1406 | "
389 | \n", 1409 | "[im, look, for, a, cheap, restaur, in, the, ea... | \n", 1410 | "(r_cuisin, east, cheap) | \n", 1411 | "[(r_price, cheap), (r_locat, east)] | \n", 1412 | "(r_cuisin, east, cheap) | \n", 1413 | "
393 | \n", 1416 | "[im, look, for, a, cheap, restaur, in, the, ea... | \n", 1417 | "(r_cuisin, east, cheap) | \n", 1418 | "[(r_price, cheap), (r_locat, east)] | \n", 1419 | "(r_cuisin, east, cheap) | \n", 1420 | "
396 | \n", 1423 | "[cheap, restaur, east, part, of, town] | \n", 1424 | "(r_cuisin, east, cheap) | \n", 1425 | "[(r_price, cheap), (r_locat, east)] | \n", 1426 | "(r_cuisin, east, cheap) | \n", 1427 | "
398 | \n", 1430 | "[look, for, a, cheap, restaur, in, the, east, ... | \n", 1431 | "(r_cuisin, east, cheap) | \n", 1432 | "[(r_price, cheap), (r_locat, east)] | \n", 1433 | "(r_cuisin, east, cheap) | \n", 1434 | "
400 | \n", 1437 | "[cheap, restaur, on, the, east, part, of, town] | \n", 1438 | "(r_cuisin, east, cheap) | \n", 1439 | "[(r_price, cheap), (r_locat, east)] | \n", 1440 | "(r_cuisin, east, cheap) | \n", 1441 | "
406 | \n", 1444 | "[cheap, restaur, in, the, east, part, of, town] | \n", 1445 | "(r_cuisin, east, cheap) | \n", 1446 | "[(r_price, cheap), (r_locat, east)] | \n", 1447 | "(r_cuisin, east, cheap) | \n", 1448 | "
410 | \n", 1451 | "[i, need, a, cheap, restaur, in, the, east, pa... | \n", 1452 | "(r_cuisin, east, cheap) | \n", 1453 | "[(r_price, cheap), (r_locat, east)] | \n", 1454 | "(r_cuisin, east, cheap) | \n", 1455 | "
412 | \n", 1458 | "[cheap, restaur, east, part, of, town] | \n", 1459 | "(r_cuisin, east, cheap) | \n", 1460 | "[(r_price, cheap), (r_locat, east)] | \n", 1461 | "(r_cuisin, east, cheap) | \n", 1462 | "
413 | \n", 1465 | "[im, look, for, a, cheap, restaur, in, the, ea... | \n", 1466 | "(r_cuisin, east, cheap) | \n", 1467 | "[(r_price, cheap), (r_locat, east)] | \n", 1468 | "(r_cuisin, east, cheap) | \n", 1469 | "
145 rows × 4 columns
\n", 1473 | "