Upload 198 files
Browse filesThis view is limited to 50 files because it contains too many changes.
See raw diff
- .gitattributes +3 -0
- TEXTOIR-main/.gitignore +5 -0
- TEXTOIR-main/LICENSE +21 -0
- TEXTOIR-main/README.md +164 -0
- TEXTOIR-main/__init__.py +17 -0
- TEXTOIR-main/data/banking/dev.tsv +1001 -0
- TEXTOIR-main/data/banking/test.tsv +0 -0
- TEXTOIR-main/data/banking/train.tsv +0 -0
- TEXTOIR-main/data/clinc/dev.tsv +0 -0
- TEXTOIR-main/data/clinc/test.tsv +0 -0
- TEXTOIR-main/data/clinc/train.tsv +0 -0
- TEXTOIR-main/data/oos/dev.tsv +0 -0
- TEXTOIR-main/data/oos/test.tsv +0 -0
- TEXTOIR-main/data/oos/train.tsv +0 -0
- TEXTOIR-main/data/snips/dev.tsv +701 -0
- TEXTOIR-main/data/snips/test.tsv +701 -0
- TEXTOIR-main/data/snips/train.tsv +0 -0
- TEXTOIR-main/data/stackoverflow/dev.tsv +0 -0
- TEXTOIR-main/data/stackoverflow/test.tsv +0 -0
- TEXTOIR-main/data/stackoverflow/train.tsv +0 -0
- TEXTOIR-main/figs/Intro.png +0 -0
- TEXTOIR-main/open_intent_detection/README.md +260 -0
- TEXTOIR-main/open_intent_detection/__init__.py +28 -0
- TEXTOIR-main/open_intent_detection/backbones/__init__.py +15 -0
- TEXTOIR-main/open_intent_detection/backbones/base.py +51 -0
- TEXTOIR-main/open_intent_detection/backbones/bert.py +624 -0
- TEXTOIR-main/open_intent_detection/backbones/llama.py +100 -0
- TEXTOIR-main/open_intent_detection/backbones/utils.py +90 -0
- TEXTOIR-main/open_intent_detection/configs/ADB.py +43 -0
- TEXTOIR-main/open_intent_detection/configs/ARPL.py +46 -0
- TEXTOIR-main/open_intent_detection/configs/DA-ADB.py +45 -0
- TEXTOIR-main/open_intent_detection/configs/DA-ADB_llama.py +47 -0
- TEXTOIR-main/open_intent_detection/configs/DOC.py +43 -0
- TEXTOIR-main/open_intent_detection/configs/DeepUnk.py +46 -0
- TEXTOIR-main/open_intent_detection/configs/K+1-way.py +44 -0
- TEXTOIR-main/open_intent_detection/configs/KNNCL.py +50 -0
- TEXTOIR-main/open_intent_detection/configs/LOF.py +46 -0
- TEXTOIR-main/open_intent_detection/configs/MDF.py +52 -0
- TEXTOIR-main/open_intent_detection/configs/MSP.py +47 -0
- TEXTOIR-main/open_intent_detection/configs/OpenMax.py +50 -0
- TEXTOIR-main/open_intent_detection/configs/SEG.py +47 -0
- TEXTOIR-main/open_intent_detection/configs/__init__.py +0 -0
- TEXTOIR-main/open_intent_detection/configs/base.py +60 -0
- TEXTOIR-main/open_intent_detection/dataloaders/__init__.py +89 -0
- TEXTOIR-main/open_intent_detection/dataloaders/base.py +66 -0
- TEXTOIR-main/open_intent_detection/dataloaders/bert_loader.py +285 -0
- TEXTOIR-main/open_intent_detection/dataloaders/llama_loader.py +289 -0
- TEXTOIR-main/open_intent_detection/examples/run_ADB.sh +29 -0
- TEXTOIR-main/open_intent_detection/examples/run_ARPL.sh +28 -0
- TEXTOIR-main/open_intent_detection/examples/run_DA-ADB.sh +29 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,6 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
TEXTOIR-main/open_intent_detection/methods/OpenMax/libMR/build/temp.linux-x86_64-3.8/libmr.o filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
TEXTOIR-main/open_intent_detection/methods/OpenMax/libMR/libmr.cpython-36m-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
| 38 |
+
TEXTOIR-main/open_intent_detection/methods/OpenMax/libMR/libmr.cpython-38-x86_64-linux-gnu.so filter=lfs diff=lfs merge=lfs -text
|
TEXTOIR-main/.gitignore
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
__pycache__
|
| 2 |
+
logs
|
| 3 |
+
outputs
|
| 4 |
+
cache
|
| 5 |
+
|
TEXTOIR-main/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
MIT License
|
| 2 |
+
|
| 3 |
+
Copyright (c) 2022 THUIAR
|
| 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.
|
TEXTOIR-main/README.md
ADDED
|
@@ -0,0 +1,164 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# TEXT Open Intent Recognition (TEXTOIR)
|
| 2 |
+
|
| 3 |
+
TEXTOIR is the first high-quality Text Open Intent Recognition platform. This repo contains a convenient toolkit with extensible interfaces, integrating a series of state-of-the-art algorithms of two tasks (open intent detection and open intent discovery). We also release the pipeline framework and the visualized platform in the repo [TEXTOIR-DEMO](https://github.com/thuiar/TEXTOIR-DEMO).
|
| 4 |
+
|
| 5 |
+
|
| 6 |
+
## Introduction
|
| 7 |
+
TEXTOIR aims to provide a convenience toolkit for researchers to reproduce the related text open classification and clustering methods. It contains two tasks, which are defined as open intent detection and open intent discovery. Open intent detection aims to identify n-class known intents, and detect one-class open intent. Open intent discovery aims to leverage limited prior knowledge of known intents to find fine-grained known and open intent-wise clusters. Related papers and codes are collected in our previous released [reading list](https://github.com/thuiar/OKD-Reading-List).
|
| 8 |
+
|
| 9 |
+
Open Intent Recognition:
|
| 10 |
+

|
| 11 |
+
|
| 12 |
+
## Updates 🔥 🔥 🔥
|
| 13 |
+
|
| 14 |
+
| Date | Announcements |
|
| 15 |
+
|- |- |
|
| 16 |
+
| 12/2023 | 🎆 🎆 New paper and SOTA in Open Intent Discovery. Refer to the directory [USNID](./open_intent_discovery/examples/run_semi_usnid.sh) for the codes. Read the paper -- [A Clustering Framework for Unsupervised and Semi-supervised New Intent Discovery (Published in IEEE TKDE 2023)](https://ieeexplore.ieee.org/document/10349963). |
|
| 17 |
+
| 04/2023 | 🎆 🎆 New paper and SOTA in Open Intent Detection. Refer to the directory [DA-ADB](./open_intent_detection/examples/run_DA-ADB.sh) for the codes. Read the paper -- [Learning Discriminative Representations and Decision Boundaries for Open Intent Detection (Published in IEEE/ACM TASLP 2023)](https://ieeexplore.ieee.org/document/10097558). |
|
| 18 |
+
| 09/2021 | 🎆 🎆 The first integrated and visualized platform for text Open Intent Recognition TEXTOIR has been released. Refer to the directory [TEXTOIR-DEMO](https://github.com/thuiar/TEXTOIR-DEMO) for the demo codes. Read our paper [TEXTOIR: An Integrated and Visualized Platform for Text Open Intent Recognition (Published in ACL 2021)](https://aclanthology.org/2021.acl-demo.20.pdf). |
|
| 19 |
+
| 05/2021 | New paper and baselines DeepAligned in Open Intent Discovery have been released. Read our paper [Discovering New Intents with Deep Aligned Clustering (Published in AAAI 2021)](https://ojs.aaai.org/index.php/AAAI/article/view/17689). |
|
| 20 |
+
| 05/2021 | New paper and baselines ADB in Open Intent Detection have been released. Read our paper [Deep Open Intent Classification with Adaptive Decision Boundary (Published in AAAI 2021)](https://ojs.aaai.org/index.php/AAAI/article/view/17690). |
|
| 21 |
+
| 05/2020 | New paper and baselines CDAC+ in Open Intent Discovery have been released. Read our paper [Discovering New Intents via Constrained Deep Adaptive Clustering with Cluster Refinement (Published in AAAI 2020)](https://ojs.aaai.org/index.php/AAAI/article/view/6353). |
|
| 22 |
+
| 07/2019 | New paper and baselines DeepUNK in Open Intent Detection have been released. Read our paper [Deep Unknown Intent Detection with Margin Loss (Published in ACL 2019)](https://aclanthology.org/P19-1548). |
|
| 23 |
+
---------------------------------------------------------------------------
|
| 24 |
+
|
| 25 |
+
**We strongly recommend you to use our TEXTOIR toolkit, which has standard and unified interfaces (especially data setting) to obtain fair and persuable results on benchmark intent datasets!**
|
| 26 |
+
|
| 27 |
+
## Benchmark Datasets
|
| 28 |
+
|
| 29 |
+
| Datasets | Source |
|
| 30 |
+
| :---: | :---: |
|
| 31 |
+
| [BANKING](./data/banking) | [Paper](https://aclanthology.org/2020.nlp4convai-1.5/) |
|
| 32 |
+
| [OOS](./data/oos) / [CLINC150](./data/clinc) | [Paper](https://aclanthology.org/D19-1131/) |
|
| 33 |
+
| [StackOverflow](./data/stackoverflow) | [Paper](https://aclanthology.org/W15-1509.pdf) |
|
| 34 |
+
|
| 35 |
+
## Integrated Models
|
| 36 |
+
### Open Intent Detection
|
| 37 |
+
|
| 38 |
+
| Model Name | Source | Published |
|
| 39 |
+
| :---: | :---: | :---: |
|
| 40 |
+
| [OpenMax*](./open_intent_detection/examples/run_OpenMax.sh) | [Paper](https://openaccess.thecvf.com/content_cvpr_2016/papers/Bendale_Towards_Open_Set_CVPR_2016_paper.pdf) [Code](https://github.com/abhijitbendale/OSDN) | CVPR 2016 |
|
| 41 |
+
| [MSP](./open_intent_detection/examples/run_MSP.sh) | [Paper](https://arxiv.org/pdf/1610.02136.pdf) [Code](https://github.com/hendrycks/error-detection) | ICLR 2017 |
|
| 42 |
+
| [DOC](./open_intent_detection/examples/run_DOC.sh) | [Paper](https://aclanthology.org/D17-1314.pdf) [Code](https://github.com/leishu02/EMNLP2017_DOC) | EMNLP 2017 |
|
| 43 |
+
| [DeepUnk](./open_intent_detection/examples/run_DeepUnk.sh) | [Paper](https://aclanthology.org/P19-1548.pdf) [Code](https://github.com/thuiar/DeepUnkID) | ACL 2019 |
|
| 44 |
+
| [SEG](./open_intent_detection/examples/run_SEG.sh) | [Paper](https://aclanthology.org/2020.acl-main.99) [Code](https://github.com/fanolabs/0shot-classification) | ACL 2020 |
|
| 45 |
+
| [ADB](./open_intent_detection/examples/run_ADB.sh) | [Paper](https://ojs.aaai.org/index.php/AAAI/article/view/17690) [Code](https://github.com/thuiar/Adaptive-Decision-Boundary) | AAAI 2021 |
|
| 46 |
+
| [(K+1)-way](./open_intent_detection/examples/run_K+1-way.sh) | [Paper](https://aclanthology.org/2021.acl-long.273) [Code](https://github.com/fanolabs/out-of-scope-intent-detection) | ACL 2021 |
|
| 47 |
+
| [MDF](./open_intent_detection/examples/run_MDF.sh) | [Paper](https://aclanthology.org/2021.acl-long.85.pdf) [Code](https://github.com/rivercold/BERT-unsupervised-OOD) | ACL 2021 |
|
| 48 |
+
| [ARPL*](./open_intent_detection/examples/run_ARPL.sh) | [Paper](https://ieeexplore.ieee.org/document/9521769) [Code](https://github.com/iCGY96/ARPL) | IEEE TPAMI 2022 |
|
| 49 |
+
| [KNNCL](./open_intent_detection/examples/run_KNNCL.sh) | [Paper](https://aclanthology.org/2022.acl-long.352/) [Code](https://github.com/zyh190507/KnnContrastiveForOOD) | ACL 2022 |
|
| 50 |
+
| [DA-ADB](./open_intent_detection/examples/run_DA-ADB.sh) | [Paper](https://ieeexplore.ieee.org/document/10097558) [Code](https://github.com/thuiar/TEXTOIR) | IEEE/ACM TASLP 2023 |
|
| 51 |
+
|
| 52 |
+
### New Intent Discovery
|
| 53 |
+
|
| 54 |
+
| Setting | Model Name | Source | Published |
|
| 55 |
+
| :---: | :---: | :---: | :---: |
|
| 56 |
+
| Unsupervised | [KM](./examples/run_KM.sh) | [Paper](https://www.cs.cmu.edu/~bhiksha/courses/mlsp.fall2010/class14/macqueen.pdf) | BSMSP 1967 |
|
| 57 |
+
| Unsupervised | [AG](./examples/run_AG.sh) | [Paper](https://www.sciencedirect.com/science/article/abs/pii/0031320378900183) | PR 1978 |
|
| 58 |
+
| Unsupervised | [SAE-KM](./examples/run_SAE.sh) | [Paper](https://www.jmlr.org/papers/volume11/vincent10a/vincent10a.pdf) | JMLR 2010|
|
| 59 |
+
| Unsupervised | [DEC](./examples/run_DEC.sh) | [Paper](http://proceedings.mlr.press/v48/xieb16.pdf) [Code](https://github.com/piiswrong/dec) | ICML 2016 |
|
| 60 |
+
| Unsupervised | [DCN](./examples/run_DCN.sh) | [Paper](http://proceedings.mlr.press/v70/yang17b/yang17b.pdf) [Code](https://github.com/xuyxu/Deep-Clustering-Network) | ICML 2017 |
|
| 61 |
+
| Unsupervised | [CC](./examples/run_CC.sh) | [Paper](https://yunfan-li.github.io/assets/pdf/Contrastive%20Clustering.pdf) [Code](https://github.com/Yunfan-Li/Contrastive-Clustering) | AAAI 2021 |
|
| 62 |
+
| Unsupervised | [SCCL](./examples/run_SCCL.sh) | [Paper](http://proceedings.mlr.press/v70/yang17b/yang17b.pdf) [Code](https://github.com/xuyxu/Deep-Clustering-Network) | NAACL 2021 |
|
| 63 |
+
| Unsupervised | [USNID](./examples/run_unsup_usnid) | [Paper](https://ieeexplore.ieee.org/document/10349963) [Code](https://github.com/thuiar/TEXTOIR/tree/main/open_intent_discovery) | IEEE TKDE 2023 |
|
| 64 |
+
| Semi-supervised | [KCL*](./examples/run_KCL.sh) | [Paper](https://openreview.net/pdf?id=ByRWCqvT-) [Code](https://github.com/GT-RIPL/L2C) | ICLR 2018 |
|
| 65 |
+
| Semi-supervised | [MCL*](./examples/run_MCL.sh) | [Paper](https://openreview.net/pdf?id=SJzR2iRcK7) [Code](https://github.com/GT-RIPL/L2C) | ICLR 2019 |
|
| 66 |
+
| Semi-supervised | [DTC*](./examples/run_DTC.sh) | [Paper](https://www.robots.ox.ac.uk/~vgg/research/DTC/files/iccv2019_DTC.pdf) [Code](https://github.com/k-han/DTC) | ICCV 2019 |
|
| 67 |
+
| Semi-supervised | [CDAC+](./examples/run_CDACPlus.sh) | [Paper](https://ojs.aaai.org/index.php/AAAI/article/view/6353) [Code](https://github.com/thuiar/CDAC-plus) | AAAI 2020 |
|
| 68 |
+
| Semi-supervised | [DeepAligned](./examples/run_DeepAligned.sh) | [Paper](https://ojs.aaai.org/index.php/AAAI/article/view/17689) [Code](https://github.com/thuiar/DeepAligned-Clustering) | AAAI 2021 |
|
| 69 |
+
| Semi-supervised | [GCD](./examples/run_GCD.sh) | [Paper](https://www.robots.ox.ac.uk/~vgg/research/gcd/) [Code](https://github.com/sgvaze/generalized-category-discovery) | CVPR 2022 |
|
| 70 |
+
| Semi-supervised | [MTP-CLNN](./examples/run_MTP_CLNN.sh) | [Paper](https://aclanthology.org/2022.acl-long.21.pdf) [Code](https://github.com/fanolabs/NID_ACLARR2022) | ACL 2022 |
|
| 71 |
+
| Semi-supervised | [USNID](./examples/run_semi_usnid.sh) | [Paper](https://ieeexplore.ieee.org/document/10349963) [Code](https://github.com/thuiar/TEXTOIR/tree/main/open_intent_discovery) | IEEE TKDE 2023 |
|
| 72 |
+
|
| 73 |
+
|
| 74 |
+
(* denotes the CV model replaced with the BERT backbone)
|
| 75 |
+
|
| 76 |
+
## Quick Start
|
| 77 |
+
1. Use anaconda to create Python (version >= 3.6) environment
|
| 78 |
+
```
|
| 79 |
+
conda create --name textoir python=3.6
|
| 80 |
+
conda activate textoir
|
| 81 |
+
```
|
| 82 |
+
|
| 83 |
+
2. Install PyTorch (Cuda version 11.2)
|
| 84 |
+
```
|
| 85 |
+
conda install pytorch torchvision torchaudio cudatoolkit=11.0 -c pytorch -c conda-forge
|
| 86 |
+
```
|
| 87 |
+
3. Clone the TEXTOIR repository, and choose the task (Take open intent detection as an example).
|
| 88 |
+
```
|
| 89 |
+
git clone git@github.com:thuiar/TEXTOIR.git
|
| 90 |
+
cd TEXTOIR
|
| 91 |
+
cd open_intent_detection
|
| 92 |
+
```
|
| 93 |
+
4. Install related environmental dependencies
|
| 94 |
+
```
|
| 95 |
+
pip install -r requirements.txt
|
| 96 |
+
```
|
| 97 |
+
5. Run examples (Take ADB as an example)
|
| 98 |
+
```
|
| 99 |
+
sh examples/run_ADB.sh
|
| 100 |
+
```
|
| 101 |
+
|
| 102 |
+
* Note that if you cannot download the pre-trained model directly from HuggingFace transformers, you need to download it yourself. We provide the pre-trained bert model in the following link:
|
| 103 |
+
[Baidu Cloud Drive](https://pan.baidu.com/s/1k1zxK4xh0UyPhOU_-oPlow) with code: v8tk
|
| 104 |
+
|
| 105 |
+
## Extensibility
|
| 106 |
+
|
| 107 |
+
This toolkit is extensible and supports adding new methods, datasets, configurations, backbones, dataloaders, losses conveniently. More detailed information can be seen in the tutorials of the directories [open_intent_detection](./open_intent_detection/README.md) and [open_intent_discovery](./open_intent_discovery/README.md).
|
| 108 |
+
|
| 109 |
+
<!-- ### Extensibility
|
| 110 |
+
This toolkit is extensible and supports adding new methods, datasets, configurations, backbones, dataloaders, losses conveniently. More detailed information can be seen in the directory [open_intent_detection](./open_intent_detection/README.md) and [open_intent_discovery](./open_intent_discovery/README.md) respectively.
|
| 111 |
+
|
| 112 |
+
### Reliability
|
| 113 |
+
The codes in this repo have been confirmed and are reliable.
|
| 114 |
+
|
| 115 |
+
The experimental results are close to the reported ones in our AAAI 2021 papers [Discovering New Intents with DeepAligned Clustering](https://ojs.aaai.org/index.php/AAAI/article/view/17689) and [Deep Open Intent Classification with Adaptive Decision Boundary](https://ojs.aaai.org/index.php/AAAI/article/view/17690). Note that the results of some methods may fluctuate in a small range due to the selected random seeds, hyper-parameters, optimizers, etc. The final results are the average of 10 random seeds to reduce the influence of different selected known classes. -->
|
| 116 |
+
|
| 117 |
+
## Citations
|
| 118 |
+
|
| 119 |
+
If this work is helpful, or you want to use the codes and results in this repo, please cite the following papers:
|
| 120 |
+
|
| 121 |
+
* [TEXTOIR: An Integrated and Visualized Platform for Text Open Intent Recognition](https://aclanthology.org/2021.acl-demo.20/)
|
| 122 |
+
* [Learning Discriminative Representations and Decision Boundaries for Open Intent Detection](https://ieeexplore.ieee.org/document/10097558)
|
| 123 |
+
* [A Clustering Framework for Unsupervised and Semi-supervised New Intent Discovery](https://ieeexplore.ieee.org/document/10349963)
|
| 124 |
+
|
| 125 |
+
```
|
| 126 |
+
@inproceedings{zhang-etal-2021-textoir,
|
| 127 |
+
title = "{TEXTOIR}: An Integrated and Visualized Platform for Text Open Intent Recognition",
|
| 128 |
+
author = "Zhang, Hanlei and Li, Xiaoteng and Xu, Hua and Zhang, Panpan and Zhao, Kang and Gao, Kai",
|
| 129 |
+
booktitle = "Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations",
|
| 130 |
+
pages = "167--174",
|
| 131 |
+
year = "2021",
|
| 132 |
+
url = "https://aclanthology.org/2021.acl-demo.20",
|
| 133 |
+
doi = "10.18653/v1/2021.acl-demo.20",
|
| 134 |
+
}
|
| 135 |
+
```
|
| 136 |
+
```
|
| 137 |
+
@article{DA-ADB,
|
| 138 |
+
title = {Learning Discriminative Representations and Decision Boundaries for Open Intent Detection},
|
| 139 |
+
author = {Zhang, Hanlei and Xu, Hua and Zhao, Shaojie and Zhou, Qianrui},
|
| 140 |
+
journal = {IEEE/ACM Transactions on Audio, Speech, and Language Processing},
|
| 141 |
+
volume = {31},
|
| 142 |
+
pages = {1611-1623},
|
| 143 |
+
year = {2023},
|
| 144 |
+
doi = {10.1109/TASLP.2023.3265203}
|
| 145 |
+
}
|
| 146 |
+
```
|
| 147 |
+
```
|
| 148 |
+
@ARTICLE{USNID,
|
| 149 |
+
author={Zhang, Hanlei and Xu, Hua and Wang, Xin and Long, Fei and Gao, Kai},
|
| 150 |
+
journal={IEEE Transactions on Knowledge and Data Engineering},
|
| 151 |
+
title={A Clustering Framework for Unsupervised and Semi-supervised New Intent Discovery},
|
| 152 |
+
year={2023},
|
| 153 |
+
doi={10.1109/TKDE.2023.3340732}
|
| 154 |
+
}
|
| 155 |
+
```
|
| 156 |
+
|
| 157 |
+
|
| 158 |
+
## Contributors
|
| 159 |
+
|
| 160 |
+
[Hanlei Zhang](https://github.com/HanleiZhang), [Shaojie Zhao](https://github.com/MurraryZhao), [Xin Wang](https://github.com/mrFocusXin), [Ting-En Lin](https://github.com/tnlin), [Qianrui Zhou](https://github.com/zhougr18), [Huisheng Mao](https://github.com/FlameSky-S).
|
| 161 |
+
|
| 162 |
+
## Bugs or questions?
|
| 163 |
+
|
| 164 |
+
If you have any questions, please open issues and illustrate your problems as detailed as possible. If you want to integrate your method in our repo, please feel free to **pull request**!
|
TEXTOIR-main/__init__.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
'''
|
| 2 |
+
Text Open Intent Recognition (TEXTOIR) toolkit @THUIAR.
|
| 3 |
+
|
| 4 |
+
If you use this code, please cite the following paper:
|
| 5 |
+
@inproceedings{zhang-etal-2021-textoir,
|
| 6 |
+
title = "{TEXTOIR}: An Integrated and Visualized Platform for Text Open Intent Recognition",
|
| 7 |
+
author = "Zhang, Hanlei and
|
| 8 |
+
Li, Xiaoteng and
|
| 9 |
+
Xu, Hua and
|
| 10 |
+
Zhang, Panpan and
|
| 11 |
+
Zhao, Kang and
|
| 12 |
+
Gao, Kai",
|
| 13 |
+
booktitle = "Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations",
|
| 14 |
+
year = "2021",
|
| 15 |
+
pages = "167--174",
|
| 16 |
+
}
|
| 17 |
+
'''
|
TEXTOIR-main/data/banking/dev.tsv
ADDED
|
@@ -0,0 +1,1001 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
text label
|
| 2 |
+
Could you please explain why I received a message that my transfer is not possible? I've never had any problems making a transfer in the past. beneficiary_not_allowed
|
| 3 |
+
How did you guys get your exchange rate? exchange_rate
|
| 4 |
+
I am still waiting on my card? card_arrival
|
| 5 |
+
Why is the purchase I made this morning still pending? pending_card_payment
|
| 6 |
+
I made a mistake and need to cancel a transfer. cancel_transfer
|
| 7 |
+
How can I request cash back? The ATM just gave me a different amount than what I've been actually charged though... wrong_amount_of_cash_received
|
| 8 |
+
I think a fee was applied for paying with a card. card_payment_fee_charged
|
| 9 |
+
How long does it take for a cash withdrawal to show? pending_cash_withdrawal
|
| 10 |
+
I attempted a transfer, but it failed. failed_transfer
|
| 11 |
+
How do you decide what the exchange rates are? exchange_rate
|
| 12 |
+
what steps do i do to get a real card order_physical_card
|
| 13 |
+
Fees for currency exchange exchange_charge
|
| 14 |
+
Is it possible to obtain both a Visa and a Mastercard from you? visa_or_mastercard
|
| 15 |
+
why was a extra fee added to my account for transfer ? transfer_fee_charged
|
| 16 |
+
I am not happy with your company. Please delete my account asap. terminate_account
|
| 17 |
+
Why did I not get the amount I specified at the ATM? wrong_amount_of_cash_received
|
| 18 |
+
Why can't I withdraw cash from this ATM? declined_cash_withdrawal
|
| 19 |
+
Am I able to get both a Visa and MasterCard from you? visa_or_mastercard
|
| 20 |
+
I am not satisfied with your company. Close my account. terminate_account
|
| 21 |
+
How can I exchange currencies in the app? exchange_via_app
|
| 22 |
+
How do I modify my account details? edit_personal_details
|
| 23 |
+
Will I be fined for topping up by transfer? top_up_by_bank_transfer_charge
|
| 24 |
+
I want to top up by card, what do you support? supported_cards_and_currencies
|
| 25 |
+
Tell me how to renew my new card? activate_my_card
|
| 26 |
+
The card can be used at which ATMs? atm_support
|
| 27 |
+
Can i choose a specific delivery date? card_delivery_estimate
|
| 28 |
+
want to know where funds come from verify_source_of_funds
|
| 29 |
+
My card isn't working at all, I need assistance. It's really frustrating. card_not_working
|
| 30 |
+
My Netflix subscription says that there is an issue with my card information, but I thought everything was fine. Why would it be declined? card_not_working
|
| 31 |
+
Why was I charged $1 in a transaction? extra_charge_on_statement
|
| 32 |
+
Why are all my transfers failing? I have the details right and they won't complete. I've been trying all day and they still won't go through, this is URGENT, please help. declined_transfer
|
| 33 |
+
Can I add money to top up my account via a bank transfer? transfer_into_account
|
| 34 |
+
I thought you offer crypto top up but it doesn't seem to be right ? Money just disappeared from my account, How it would work ? top_up_reverted
|
| 35 |
+
Where do you get those exchange rates? exchange_rate
|
| 36 |
+
The seller just told me he didn't get paid. After reviewing my account it did subtract the balance but now it has added it back to my account. I need you to please take care of this promptly. reverted_card_payment?
|
| 37 |
+
How do I sign up for a card if I'm in America? country_support
|
| 38 |
+
Can I get spare cards? getting_spare_card
|
| 39 |
+
I've transferred money into my account but the balance is the same balance_not_updated_after_bank_transfer
|
| 40 |
+
I haven't received my transfer funds yet, where are they? pending_transfer
|
| 41 |
+
I want to change my account details. edit_personal_details
|
| 42 |
+
I'm getting concerned here. I sent a friend some money and she isn't seeing it. What's going on? transfer_not_received_by_recipient
|
| 43 |
+
My card payment is just showing up as pending since forever, what's going on with that, when should it be going through? pending_card_payment
|
| 44 |
+
There is a payment with my card which i definitely did not make by me .Never seen that it before. card_payment_not_recognised
|
| 45 |
+
How much will I be charged for exchanging foreign currency exchange_charge
|
| 46 |
+
I have lost my credit card in the ATM! card_swallowed
|
| 47 |
+
I recently made a transfer that I would like to cancel cancel_transfer
|
| 48 |
+
My card needs to be topped up. topping_up_by_card
|
| 49 |
+
Why was I denied the option to transfer money to a selected beneficiary? beneficiary_not_allowed
|
| 50 |
+
I live in the EU, can I get one of your cards? country_support
|
| 51 |
+
Can I use this app for both USD and GBP? exchange_via_app
|
| 52 |
+
What do I need to see my source of money? verify_source_of_funds
|
| 53 |
+
Help! My card isn't working at the ATM and I know I used the right PIN. Trying to get my money. declined_cash_withdrawal
|
| 54 |
+
Why does my transfer say it is pending? pending_transfer
|
| 55 |
+
Someone withdrew money from my account, and it wasn't me. cash_withdrawal_not_recognised
|
| 56 |
+
How do I shut down my account and get out of this company? terminate_account
|
| 57 |
+
How long do I have to wait for my transaction to be completed? transfer_not_received_by_recipient
|
| 58 |
+
Will you be able to exchange to EUR? fiat_currency_support
|
| 59 |
+
Hello, I have noticed a problem on my recent withdrawal at the banks atm machine. I made a transaction and upon receiving my funds from the machine, a fee was assessed to my withdrawal. Are these types of transactions free of charge? cash_withdrawal_charge
|
| 60 |
+
How can many disposable cards can I have per day? disposable_card_limits
|
| 61 |
+
Is there a specific source that the exchange rate for the transfer I'm planning on making is pulled from? exchange_rate
|
| 62 |
+
I want to use a payment card to top up my account. How can I do this? supported_cards_and_currencies
|
| 63 |
+
I can't get the card itself to work. card_not_working
|
| 64 |
+
I want a refund on the things i bought request_refund
|
| 65 |
+
In reviewing my statement, I show I have two charges for the same purchase at the same time, which I have not made in duplicate? How do I get this solved? transaction_charged_twice
|
| 66 |
+
I made a card payment, but it has been declined? declined_card_payment
|
| 67 |
+
What are the fees for using transfer to top off my account? top_up_by_bank_transfer_charge
|
| 68 |
+
Do you have an auto-top function and how do I use it if so? automatic_top_up
|
| 69 |
+
How can I find an ATM that accepts this card? atm_support
|
| 70 |
+
I wanted to buy something online yesterday, but I could not because the card got declined on the day of and the following day. What is wrong with the card? declined_transfer
|
| 71 |
+
I have the cash already, my account still shows up as pending. How can my account be still pending? pending_cash_withdrawal
|
| 72 |
+
Do you know when the withdrawal will show? pending_cash_withdrawal
|
| 73 |
+
How much can I top up on my card? top_up_limits
|
| 74 |
+
Is topping up unlimited? top_up_limits
|
| 75 |
+
Can you tell me what I need to do to have my pin changed? change_pin
|
| 76 |
+
what is this extra charge for a withdrawal? cash_withdrawal_charge
|
| 77 |
+
how to recover my passcode passcode_forgotten
|
| 78 |
+
The transfer finally worked, but how long does it stay pending? pending_transfer
|
| 79 |
+
Where do I go to unblock my PIN? pin_blocked
|
| 80 |
+
Why did my credit card get declined for top up? top_up_failed
|
| 81 |
+
A transfer was not allowed to an account. beneficiary_not_allowed
|
| 82 |
+
Payment I did not make. card_payment_not_recognised
|
| 83 |
+
I couldn't pay with card in a shop declined_card_payment
|
| 84 |
+
I was trying to top up my account and it isn't working top_up_failed
|
| 85 |
+
Im not sure if a seller is giving me my money back! I asked them to refund my money for the item but It's been a week now and still nothing has been given back to me. Can you resolve this for me? Refund_not_showing_up
|
| 86 |
+
Do I need to use a limit on top-ups? top_up_limits
|
| 87 |
+
How can I find out why my transfer didn't go through? failed_transfer
|
| 88 |
+
I made a card payment but it didn't work. Why not? declined_card_payment
|
| 89 |
+
How much is it to use my US debit or credit card to top up? top_up_by_card_charge
|
| 90 |
+
Do you support direct deposits from my employer? receiving_money
|
| 91 |
+
My wallet is empty even though I topped it up an hour ago. topping_up_by_card
|
| 92 |
+
I haven't received my PIN yet. Do I need to get it from you? get_physical_card
|
| 93 |
+
Can I top up my balance with a cheque? top_up_by_cash_or_cheque
|
| 94 |
+
How long does it take for me to get my new card? card_arrival
|
| 95 |
+
"Hi, I had an issue with my card payment and It shows on my account that my payment went through. Then I got contacted from the seller saying ""they did not receive my payment"" then the payment was returned to my account. so I would like to see why it did that please." reverted_card_payment?
|
| 96 |
+
I see a direct debit payment on my statement that wasn't me direct_debit_payment_not_recognised
|
| 97 |
+
Can I have another card in addition to my first one? getting_spare_card
|
| 98 |
+
I'm not certain my top-up went through yet. pending_top_up
|
| 99 |
+
can I link a card of yours I already have? card_linking
|
| 100 |
+
How much would I be charged for a transfer? top_up_by_bank_transfer_charge
|
| 101 |
+
My pin isn't here yet get_physical_card
|
| 102 |
+
My card wants to be topped what do you guys support? supported_cards_and_currencies
|
| 103 |
+
I am having trouble transferring money to a beneficiery. beneficiary_not_allowed
|
| 104 |
+
Where did my extra fee for the transfer come from? transfer_fee_charged
|
| 105 |
+
I need help right now. I realize I sent my payment to the wrong account number after making a typo. Please cancel the transfer now since I can't do it from the app. cancel_transfer
|
| 106 |
+
Why have I been charged an extra pound? extra_charge_on_statement
|
| 107 |
+
Salary in GBP has been received. Does it need to be configured into another place? receiving_money
|
| 108 |
+
Give me a refund request_refund
|
| 109 |
+
Do i have to top-up with my credit card before I can transfer? topping_up_by_card
|
| 110 |
+
Can you do exchanges of EUR? fiat_currency_support
|
| 111 |
+
Why can't I transfer to another account? beneficiary_not_allowed
|
| 112 |
+
What is the process for activating my card and using it? activate_my_card
|
| 113 |
+
Why can't I see my top up? topping_up_by_card
|
| 114 |
+
There's a payment showing in the app today even though I have not used my card at all. I want a refund. direct_debit_payment_not_recognised
|
| 115 |
+
Is the ATM broken? I can't get cash from it. declined_cash_withdrawal
|
| 116 |
+
How can I check to see where my funds come from? verify_source_of_funds
|
| 117 |
+
I punched in the wrong pin too many times and I'm locked out. pin_blocked
|
| 118 |
+
How to receive virtual card? getting_virtual_card
|
| 119 |
+
My client was converting their Russian ruble into UK pound currency when they noticed their bill was much too high for the exchange. What happened? card_payment_wrong_exchange_rate
|
| 120 |
+
Hi I'm waiting for a refund for an item I bought. I have contacted the merchant directly but had nothing back. Can you tell me whether or not you are able to refund me for the item? Refund_not_showing_up
|
| 121 |
+
what is this extra charge with my purchase? card_payment_fee_charged
|
| 122 |
+
What countries are you issuing cards for? country_support
|
| 123 |
+
How do I get the passcode reset? passcode_forgotten
|
| 124 |
+
I am still waiting for a the cash I deposited this morning balance_not_updated_after_cheque_or_cash_deposit
|
| 125 |
+
Do you have a limit for someone's age? age_limit
|
| 126 |
+
Change of location, need to change details edit_personal_details
|
| 127 |
+
How can I make my card ready to use? activate_my_card
|
| 128 |
+
How do you top up with a cheque? top_up_by_cash_or_cheque
|
| 129 |
+
Why did I get less from the ATM? wrong_amount_of_cash_received
|
| 130 |
+
I wish to cancel a transfer cancel_transfer
|
| 131 |
+
Please explain to me how to know where my funds are from. verify_source_of_funds
|
| 132 |
+
Can I order a card please? order_physical_card
|
| 133 |
+
What are the steps to change my PIN to something else? change_pin
|
| 134 |
+
What is the Top up rate charge for using a card in the US? top_up_by_card_charge
|
| 135 |
+
Which ATMs accept this bill of fare ? atm_support
|
| 136 |
+
why hasn't my virtual card come yet? getting_virtual_card
|
| 137 |
+
How is my money transferred to the account transfer_into_account
|
| 138 |
+
I'm still waiting for my new card. card_arrival
|
| 139 |
+
How long does it take to receive my card? card_delivery_estimate
|
| 140 |
+
Will you guys charge me for topping up by transfer? top_up_by_bank_transfer_charge
|
| 141 |
+
What is taking so long with my top up? pending_top_up
|
| 142 |
+
can I choose delivery times to suite me? card_delivery_estimate
|
| 143 |
+
Hello. Please, would you tell me if you have or have not received funds for a refund that I recently requested for a big purchase? I've contacted the merchant, but I can't tell that they have taken any action on it. Refund_not_showing_up
|
| 144 |
+
What's the tracking on the card you sent? card_arrival
|
| 145 |
+
Which flat currencies are supported for holding and exchange? fiat_currency_support
|
| 146 |
+
What should I do if I think someone is using my card without my permission? compromised_card
|
| 147 |
+
How can I transfer money to a beneficiary? beneficiary_not_allowed
|
| 148 |
+
Why would the app deny my top-up? top_up_failed
|
| 149 |
+
I have a friend who needs money as soon as possibly. If I were to transfer it how long will it take to get to her? transfer_not_received_by_recipient
|
| 150 |
+
How long will a transaction to a friend take? transfer_not_received_by_recipient
|
| 151 |
+
I have a new email. edit_personal_details
|
| 152 |
+
Can you provide me a disposable virtual card? get_disposable_virtual_card
|
| 153 |
+
Can I change my pin through the app? change_pin
|
| 154 |
+
I have been double charged for a couple of things this week, and would appreciate a refund for the duplicate charges. transaction_charged_twice
|
| 155 |
+
What needs to be done to activate and use a card? activate_my_card
|
| 156 |
+
How long will this transfer from europe take? transfer_timing
|
| 157 |
+
My PIN has been blocked, what should I do? pin_blocked
|
| 158 |
+
How can I get my PIN unblocked? pin_blocked
|
| 159 |
+
How long does a check take to show up in the account balance? balance_not_updated_after_cheque_or_cash_deposit
|
| 160 |
+
I made a mistake and performed a transaction on the wrong account! cancel_transfer
|
| 161 |
+
Hi, I tried to top up my card today and it did not work. I have tried it in the past and it worked just fine but it won't do it anymore. Can you help me out? top_up_failed
|
| 162 |
+
Why was I charged twice for the same transaction? transaction_charged_twice
|
| 163 |
+
Transfers may show up as pending for up to one business day while they are processed, and then they'll depart for the beneficiary accounts. Please confirm that you have correctly entered your account details. SEPA transfers typically take up to two working days, while SWIFT transfers can take up to five working days. pending_transfer
|
| 164 |
+
How would I go about getting a physical card to use in stores? order_physical_card
|
| 165 |
+
My money is gone. I had topped up recently and saw it was there and went through, but now it's disappeared, what is happening? top_up_reverted
|
| 166 |
+
I might have been charged on my debit statement by fraud. direct_debit_payment_not_recognised
|
| 167 |
+
I didn't get my card back from the ATM. card_swallowed
|
| 168 |
+
Why was the wrong rate applied when I bought something in a different currency? card_payment_wrong_exchange_rate
|
| 169 |
+
A payment I didn't do shows in my app card_payment_not_recognised
|
| 170 |
+
How much is the charge to top up via credit card? top_up_by_card_charge
|
| 171 |
+
Do you hold money and if so, what currencies do you accept? fiat_currency_support
|
| 172 |
+
There is a withdrawal in my account I didn't make. cash_withdrawal_not_recognised
|
| 173 |
+
Why am I still not able to see the money I deposited a week ago? This is urgent!! balance_not_updated_after_cheque_or_cash_deposit
|
| 174 |
+
Where is the closest ATM I can use? atm_support
|
| 175 |
+
I heard you have virtual cards. How do I get one? getting_virtual_card
|
| 176 |
+
Where do I find PIN for my card? pin_blocked
|
| 177 |
+
I don't think I should have been charged a fee to use my card. card_payment_fee_charged
|
| 178 |
+
What are the fees imposed when I make a transaction? card_payment_fee_charged
|
| 179 |
+
Explain to me how to verify the top-up card. verify_top_up
|
| 180 |
+
I keep being asked to verify my identity. Is this normal? why_verify_identity
|
| 181 |
+
I need to find out where the card is that I ordered. card_arrival
|
| 182 |
+
I am still waiting for a transfer I did balance_not_updated_after_bank_transfer
|
| 183 |
+
I was charged a fee for the transfer, but can you tell me why? transfer_fee_charged
|
| 184 |
+
Why hasn't my top-up finished pending yet? pending_top_up
|
| 185 |
+
I need urgent help. I realize I sent my payment to the wrong account number. I made a typo. Please cancel the transfer immediately. I cannot do anything from the app. cancel_transfer
|
| 186 |
+
I ordered something, and now I have buyer's remorse. Since what I ordered hasn't come yet, can you just cancel the payment since I already know I want a refund for it? request_refund
|
| 187 |
+
When are cards shipped? card_delivery_estimate
|
| 188 |
+
The ATM keeps declining my Transaction . I tried two different ATMs already Would you please check if everything is okay with my account? declined_cash_withdrawal
|
| 189 |
+
How high is the exchange fee? exchange_charge
|
| 190 |
+
My ATM withdrawal is taking forever pending_cash_withdrawal
|
| 191 |
+
How do I get a card if I live in the US? country_support
|
| 192 |
+
I topped up recently and saw the money go through, but now it's just gone? What's going on top_up_reverted
|
| 193 |
+
Why was I charged an extra fee from the ATM? cash_withdrawal_charge
|
| 194 |
+
Which fiat currencies are supported by you? fiat_currency_support
|
| 195 |
+
A while ago i requested a refund from a seller. I keep checking my statement but I have not been refunded yet. I'm confused why i haven't gotten my money back yet but I need your help getting it please. Refund_not_showing_up
|
| 196 |
+
how do the cards work? get_disposable_virtual_card
|
| 197 |
+
How do I get extra cards? getting_spare_card
|
| 198 |
+
how do I link an old card? card_linking
|
| 199 |
+
How would I change my details? edit_personal_details
|
| 200 |
+
My card is missing! Help! lost_or_stolen_card
|
| 201 |
+
What does it mean if my cash withdrawal does not show up properly? pending_cash_withdrawal
|
| 202 |
+
lost my card in atm card_swallowed
|
| 203 |
+
How do I replace a card that's going to expire? card_about_to_expire
|
| 204 |
+
Not sure what my password is. passcode_forgotten
|
| 205 |
+
Can someone help with my passcode? passcode_forgotten
|
| 206 |
+
I attempted to withdraw some money from an ATM this morning and received the wrong amount. Your app says I have enough money available in the account. Can someone tell me what's wrong? wrong_amount_of_cash_received
|
| 207 |
+
How does it work when I transfer money into my account? transfer_into_account
|
| 208 |
+
What currencies and cards do you support? supported_cards_and_currencies
|
| 209 |
+
Can it specifically be delivered on a certain date? card_delivery_estimate
|
| 210 |
+
My refund has not arrived, and I am unsure why. Who do I contact? Refund_not_showing_up
|
| 211 |
+
My app shows a payment I didn't make card_payment_not_recognised
|
| 212 |
+
I see cash in my app but I did not get it. cash_withdrawal_not_recognised
|
| 213 |
+
Why hasn't my refund been appiled to my account? Refund_not_showing_up
|
| 214 |
+
I had a dollar charged to my account that's still pending and wanted to know what the charge is for? extra_charge_on_statement
|
| 215 |
+
Why isn't the transferred money there? balance_not_updated_after_bank_transfer
|
| 216 |
+
I can't make purchases with my virtual card. virtual_card_not_working
|
| 217 |
+
What proof of identification is needed? verify_my_identity
|
| 218 |
+
Please help me! My physical card isn't working right. card_not_working
|
| 219 |
+
There are duplicate transactions on my account transaction_charged_twice
|
| 220 |
+
How can I find your exchange rates? exchange_rate
|
| 221 |
+
Did I not get my refund? I don't see it. Refund_not_showing_up
|
| 222 |
+
Hearing about your verification results from us may take anywhere from 10 minutes to approximately one hour. If this verification has in fact, failed, double-check to make sure that your images are clear. Also make sure that your document photos have no blur or glare. They need to be readable. You must also be 18 years of age or older and be a resident of Switzerland or the European Economic Area to open an account. unable_to_verify_identity
|
| 223 |
+
Why on earth do you need so much personal id info from me? why_verify_identity
|
| 224 |
+
How do I activate auto top-up when traveling? automatic_top_up
|
| 225 |
+
Why is my 'top up' not showing up in my wallet? topping_up_by_card
|
| 226 |
+
I'm not sure why my payment has been declined? Please tell me why, I thought it was all good. declined_card_payment
|
| 227 |
+
For some reason, I'm unable to transfer funds. beneficiary_not_allowed
|
| 228 |
+
Help! The app has an ATM withdrawl that I didn't make. cash_withdrawal_not_recognised
|
| 229 |
+
I received a fee for obtaining cash, is this correct? cash_withdrawal_charge
|
| 230 |
+
Can I transfer money using the SWIFT service? top_up_by_bank_transfer_charge
|
| 231 |
+
How many transactions can be made with a disposable card? disposable_card_limits
|
| 232 |
+
How long does it take for the money to show up in my account? transfer_timing
|
| 233 |
+
I have used all of my PIN tries. What should I do now? pin_blocked
|
| 234 |
+
Will my other US credit card be accepted? supported_cards_and_currencies
|
| 235 |
+
Which currencies do you handle? supported_cards_and_currencies
|
| 236 |
+
I don't recognize this payment card_payment_not_recognised
|
| 237 |
+
Which merchants accept my card? card_acceptance
|
| 238 |
+
is it ok if i use both visa and mastercard visa_or_mastercard
|
| 239 |
+
How do I get my card PIN? get_physical_card
|
| 240 |
+
For the identity check, do I need any kind of documentation? verify_my_identity
|
| 241 |
+
Do you need to know my first and last name? why_verify_identity
|
| 242 |
+
How do I take a block off my card? pin_blocked
|
| 243 |
+
How long does it actually take for a card payment to go through? There's one stuck since a couple of days already that doesn't seem to move pending_card_payment
|
| 244 |
+
I moved, can I edit my personal details? edit_personal_details
|
| 245 |
+
Which fiat currencies are supported? fiat_currency_support
|
| 246 |
+
My refund isn't showing up on my statement. Refund_not_showing_up
|
| 247 |
+
There is a charge I don't recognize. card_payment_not_recognised
|
| 248 |
+
My top up hasn't gone through pending_top_up
|
| 249 |
+
I put my check in the bank, but I haven't gotten my cash yet? balance_not_updated_after_cheque_or_cash_deposit
|
| 250 |
+
I've been trying to transfer funds to top-up my card, but the transaction is not going through. Is there something I'm doing wrong? top_up_failed
|
| 251 |
+
When will I get my money? It's been too long. transfer_not_received_by_recipient
|
| 252 |
+
Where is the refund on my statement? Refund_not_showing_up
|
| 253 |
+
Please explain how disposable virtual card work. get_disposable_virtual_card
|
| 254 |
+
The app isn't letting me log in, but my info is correct. unable_to_verify_identity
|
| 255 |
+
why cant you just refund me instead of a merchant Refund_not_showing_up
|
| 256 |
+
I have gone through my statements and noticed there is a large payment that I did not make. Can i still dispute the payment? its been a while direct_debit_payment_not_recognised
|
| 257 |
+
oh my god I lost my card! what should I do? lost_or_stolen_card
|
| 258 |
+
I have been overcharged. transaction_charged_twice
|
| 259 |
+
Disaster, I've totally forgotten my passcode, can you help me? passcode_forgotten
|
| 260 |
+
how can i get it to add money automatically while travelling automatic_top_up
|
| 261 |
+
Will my GPB update my salary receiving_money
|
| 262 |
+
Can I top up with cash top_up_by_cash_or_cheque
|
| 263 |
+
I cannot seem to use my card. card_not_working
|
| 264 |
+
When did you start charging to make a withdrawal? How much is it now? I always thought it was free. cash_withdrawal_charge
|
| 265 |
+
Why is your exchange rate so bad? card_payment_wrong_exchange_rate
|
| 266 |
+
Hi, I sent a payment to the wrong account number - can you cancel it as soon as possible? cancel_transfer
|
| 267 |
+
I was mugged. They took everything. I can't use the app. What do I do? lost_or_stolen_phone
|
| 268 |
+
What are the countries you support. country_support
|
| 269 |
+
I removed cash from an ATM earlier but it shows up as pending in the app. How can this still be pending, I already received the cash? pending_cash_withdrawal
|
| 270 |
+
I cannot seem to buy something online with my card? the payment comes back, what's going on? reverted_card_payment?
|
| 271 |
+
The exchange rate from my card payment isn't right. card_payment_wrong_exchange_rate
|
| 272 |
+
I have an emergency and lost my phone. I need help accessing my account. lost_or_stolen_phone
|
| 273 |
+
What currencies do you accept for adding money to my account? supported_cards_and_currencies
|
| 274 |
+
Can you tell me what the problem with my card is? It was declined at a restaurant today. card_not_working
|
| 275 |
+
What is the time period for money to be transferred? transfer_timing
|
| 276 |
+
What do I do if I think someone has used my card? compromised_card
|
| 277 |
+
Why is my identity not being verified? unable_to_verify_identity
|
| 278 |
+
How can I information on my limit for top-ups? top_up_limits
|
| 279 |
+
When the time is right will this automatically replenish my balance? automatic_top_up
|
| 280 |
+
I'm waiting for my transaction to complete. transfer_not_received_by_recipient
|
| 281 |
+
I am seeing in the App a some cash withdrawal that I did not do cash_withdrawal_not_recognised
|
| 282 |
+
Hey a seller just contacted me that my money didn't come through. It was definitely deducted from my account, but now it appears it's back with me! Sort this out asap please. reverted_card_payment?
|
| 283 |
+
Why did you charge me a fee when I made a transfer? transfer_fee_charged
|
| 284 |
+
Where is the top-up verification code located? verify_top_up
|
| 285 |
+
I made a big purchase that I regretted and cancelled, the merchant said that my refund was submitted. Can you confirm to me that all of my money was truly returned to me? Refund_not_showing_up
|
| 286 |
+
Is top-up possible with Apple Pay? apple_pay_or_google_pay
|
| 287 |
+
Are there any restrictions for the disposable cards that I need to be aware of? disposable_card_limits
|
| 288 |
+
Am I allowed to carry an additional card? getting_spare_card
|
| 289 |
+
My package is taking too long to arrive and I don't want it anymore. Can I get a refund? request_refund
|
| 290 |
+
I'd like to open an account for my kids can I do that? age_limit
|
| 291 |
+
I did not do this payment card_payment_not_recognised
|
| 292 |
+
I sent a payment but it isn't showing up in the app transfer_not_received_by_recipient
|
| 293 |
+
How long does it take for a new purchase to stop being considered pending? pending_card_payment
|
| 294 |
+
What do I do if my top-up has not gone through? pending_top_up
|
| 295 |
+
I think the payment from my card was revereted reverted_card_payment?
|
| 296 |
+
How do I modify my details? edit_personal_details
|
| 297 |
+
Is there a way to link the card i just got? card_linking
|
| 298 |
+
Can i set up an auto top-up? automatic_top_up
|
| 299 |
+
What happened! I asked for 30 pounds at your ATM and only go 10. The machine lied about it too. It said I received the full 30 pounds. Someone better help me asap on this. wrong_amount_of_cash_received
|
| 300 |
+
Can friends I have top-up my account? topping_up_by_card
|
| 301 |
+
Is it possible to change from AUD to GBP? exchange_via_app
|
| 302 |
+
I deposited a cheque and its been days and I still haven't received the cash!! balance_not_updated_after_cheque_or_cash_deposit
|
| 303 |
+
I have been charged twice on my statement. transaction_charged_twice
|
| 304 |
+
What about an auto top-up, is that a option? automatic_top_up
|
| 305 |
+
I misplaced my phone so I can't use the app! Does this mean I can't use my card? lost_or_stolen_phone
|
| 306 |
+
The exchange rate for my payment last Saturday must be wrong because I was charged extra. card_payment_wrong_exchange_rate
|
| 307 |
+
What do I need in regards to identification? verify_my_identity
|
| 308 |
+
the exchange rate is wrong from something I got in another country card_payment_wrong_exchange_rate
|
| 309 |
+
I don't recognize this payment at all! Help! card_payment_not_recognised
|
| 310 |
+
What's the top-up limit? top_up_limits
|
| 311 |
+
Are you able to delete my account? terminate_account
|
| 312 |
+
I would like to reactivate my card that I previously reported lost. I located the card this morning. card_linking
|
| 313 |
+
Can you tell me about why the account I have was charged an extra 1$ extra_charge_on_statement
|
| 314 |
+
I need to order a new card. order_physical_card
|
| 315 |
+
Why was there a transfer fee on my account? transfer_fee_charged
|
| 316 |
+
I need a Visa and a Mastercard from you. visa_or_mastercard
|
| 317 |
+
Why do you keep declining my transfers? it's always been working really well so far but when I tried to buy something just now the card got declined, I tried couple of times already but same thing is happening. declined_transfer
|
| 318 |
+
I have questions about how to transfer money to my account. transfer_into_account
|
| 319 |
+
Where did the €1 fee in my statement come from extra_charge_on_statement
|
| 320 |
+
I need help with understanding why my card is not working. card_not_working
|
| 321 |
+
Will be Apple Watch be able to let me top up? apple_pay_or_google_pay
|
| 322 |
+
I was charged for getting cash. cash_withdrawal_charge
|
| 323 |
+
my money, where is it coming from? verify_source_of_funds
|
| 324 |
+
How can I set a new pin. change_pin
|
| 325 |
+
I think I was charged extra on my payment on last Saturday. Maybe the exchange rate was wrong? I'd like a refund. card_payment_wrong_exchange_rate
|
| 326 |
+
A transfer could not be completed. failed_transfer
|
| 327 |
+
What is the limit on disposable cards? disposable_card_limits
|
| 328 |
+
What is the proper way to activate a card? activate_my_card
|
| 329 |
+
I want to link my new card. Can you help? card_linking
|
| 330 |
+
Any chance of getting the card outside the UK? country_support
|
| 331 |
+
Where can I get a card in the EU? country_support
|
| 332 |
+
My wallet was just stolen, and they've already used my card! Please help, I can't afford to lose more money! cash_withdrawal_not_recognised
|
| 333 |
+
Is there a reason my top-up has been cancelled? top_up_reverted
|
| 334 |
+
Help me! I don't know what my password is. passcode_forgotten
|
| 335 |
+
In my statement, there was an extra €1 fee extra_charge_on_statement
|
| 336 |
+
Can you tell me how to get AUD not GBP? exchange_via_app
|
| 337 |
+
can i verify my identity i the app verify_my_identity
|
| 338 |
+
My cheque is taking a while balance_not_updated_after_cheque_or_cash_deposit
|
| 339 |
+
I bought something and received it, but the payment went back to my account. Is the seller okay? reverted_card_payment?
|
| 340 |
+
The wrong exchange rate was applied to me while pulling out cash. wrong_exchange_rate_for_cash_withdrawal
|
| 341 |
+
My top up is giving me problems. What is wrong with it? top_up_failed
|
| 342 |
+
I see a $1 charge in a transaction. extra_charge_on_statement
|
| 343 |
+
What steps do I have to take to change my PIN? change_pin
|
| 344 |
+
My top-up funds aren't available yet. pending_top_up
|
| 345 |
+
When can I expect my card? card_delivery_estimate
|
| 346 |
+
My card is stolen. Help! lost_or_stolen_card
|
| 347 |
+
What is going on with my cash deposit. I'm looking at my account balance and it is not there. It has been almost a week. Someone better get back to me asap. balance_not_updated_after_cheque_or_cash_deposit
|
| 348 |
+
The store card reader would not accept my card. declined_card_payment
|
| 349 |
+
What businesses can I use this card with? card_acceptance
|
| 350 |
+
Where can the cards be delivered? order_physical_card
|
| 351 |
+
what are limits to top up top_up_limits
|
| 352 |
+
When will I receive my card? card_delivery_estimate
|
| 353 |
+
Can I use your app to exchange between USD and GBP exchange_via_app
|
| 354 |
+
I deposited cash into my account and I'm having trouble seeing it on my account. balance_not_updated_after_cheque_or_cash_deposit
|
| 355 |
+
I didn't cancel my top-up. top_up_reverted
|
| 356 |
+
My card payment's cancelled reverted_card_payment?
|
| 357 |
+
My new card hasn't came in. card_arrival
|
| 358 |
+
There are multiple instances where you added a fee to the payment, as well as some where you didn't. Do you have an outline of when a fee will be added? card_payment_fee_charged
|
| 359 |
+
Hi, I tried to withdraw some money from an ATM and the machine was broken. It says that the transaction is still in progress. Can you double check to see what's happening? I don't want to be charged since I was not able to withdraw the money. pending_cash_withdrawal
|
| 360 |
+
What is the fee for accepting money from a foreign country? exchange_charge
|
| 361 |
+
how long are my top ups pending pending_top_up
|
| 362 |
+
I got less money than I asked for. wrong_amount_of_cash_received
|
| 363 |
+
What fees are there for adding money using an international card top_up_by_card_charge
|
| 364 |
+
Why wouldn't the ATM give me my money? declined_cash_withdrawal
|
| 365 |
+
I was double charged at a restaurant can you take the second charge off? transaction_charged_twice
|
| 366 |
+
Money transfer help? How long? transfer_timing
|
| 367 |
+
Help me access the card I already got so I can information from it. card_linking
|
| 368 |
+
The passcode isn't working for me. passcode_forgotten
|
| 369 |
+
Is the 1 pound charge I can see an error or an incorrect entry? extra_charge_on_statement
|
| 370 |
+
I just deposited cash to my account and can't find it! balance_not_updated_after_cheque_or_cash_deposit
|
| 371 |
+
I made a payment with my card and it hasn't changed. How long do you think this will take? pending_card_payment
|
| 372 |
+
Is there any way to cancel a recent transfer? I did not mean to make it and need to make sure it does not go through. cancel_transfer
|
| 373 |
+
My top up didn't go through top_up_failed
|
| 374 |
+
I got this stupid fee after taking cash out, why? cash_withdrawal_charge
|
| 375 |
+
My card's expiration date is close. card_about_to_expire
|
| 376 |
+
When is my balance going to update, I just transferred some money balance_not_updated_after_bank_transfer
|
| 377 |
+
How come when I tried to pay contactless at the bus it didnt work? contactless_not_working
|
| 378 |
+
Why does my identity need verification? why_verify_identity
|
| 379 |
+
Can I choose from either Visa or Mastercard? visa_or_mastercard
|
| 380 |
+
There's an unauthorized cash withdraw cash_withdrawal_not_recognised
|
| 381 |
+
I don't need to transfer anymore and I want to cancel it. cancel_transfer
|
| 382 |
+
I think there's a purchase at a store that I didn't go to. card_payment_not_recognised
|
| 383 |
+
Can you accept my other card from the U.S.? It is the only other one I have. supported_cards_and_currencies
|
| 384 |
+
When I made a transfer I was charged extra. transfer_fee_charged
|
| 385 |
+
I have done a transfer within the country the day before yesterday, but it's still not there yet. Can you please check what's going on with that, the account number definitely is the right one, I've checked that already. transfer_not_received_by_recipient
|
| 386 |
+
I can't get money out of the ATM. Is my card actually working? It's the first time I tried using it declined_cash_withdrawal
|
| 387 |
+
A payment that I didn't make appears in my app. card_payment_not_recognised
|
| 388 |
+
Why did the ATM give me less money than what I requested? wrong_amount_of_cash_received
|
| 389 |
+
When will I have access to my pin number? get_physical_card
|
| 390 |
+
Send me my card now! ASAP card_delivery_estimate
|
| 391 |
+
On my disposable card, is there a transaction limit? disposable_card_limits
|
| 392 |
+
What is the price for an additional card? getting_spare_card
|
| 393 |
+
I need a single use card for shopping online get_disposable_virtual_card
|
| 394 |
+
How do I discontinue my account? terminate_account
|
| 395 |
+
I need a new card and I live in the United States. country_support
|
| 396 |
+
I saw a fee on my app from one of my payments and I wasn't sure where it came from. Is there a way you can tell me when there's an additional fee for my payments? card_payment_fee_charged
|
| 397 |
+
I've tried using my contactless in several locations today and it's not working anywhere. It seemed fine before. How do I get it to work again? contactless_not_working
|
| 398 |
+
There is a direct debit set up that I didn't create. direct_debit_payment_not_recognised
|
| 399 |
+
How can I open an account for my children? age_limit
|
| 400 |
+
What is the maximum number of transactions I can do with a disposable card? disposable_card_limits
|
| 401 |
+
Hello. I tried doing a topup and I thought it worked, but now the money is no longer in my account. Can you explain? top_up_reverted
|
| 402 |
+
What's the reason my new card hasn't come? card_arrival
|
| 403 |
+
How many digits identify the top-up verification code? verify_top_up
|
| 404 |
+
Whats the transfer process transfer_into_account
|
| 405 |
+
I was wondering, Can I get my pay in another currency? receiving_money
|
| 406 |
+
I was charged an incorrect exchange rate for a withdrawal. wrong_exchange_rate_for_cash_withdrawal
|
| 407 |
+
Can I change my card PIN? change_pin
|
| 408 |
+
How long is US delivery? card_delivery_estimate
|
| 409 |
+
How do I revert a transaction? cancel_transfer
|
| 410 |
+
What is the foreign exchange rate you will apply? exchange_rate
|
| 411 |
+
I would like my refund for this item I bought. request_refund
|
| 412 |
+
How do I transfer cash my into my account? transfer_into_account
|
| 413 |
+
I could not access my money at the ATM declined_cash_withdrawal
|
| 414 |
+
I am trying to transfer money and something is going wrong. failed_transfer
|
| 415 |
+
I believe that someone is using my card without my knowledge! compromised_card
|
| 416 |
+
I topped up but my money is not showing. Why is that? top_up_reverted
|
| 417 |
+
I'm sure I have enough money so why didn't the store accept my card? declined_card_payment
|
| 418 |
+
How do I get a new expiration date? card_about_to_expire
|
| 419 |
+
How do I use disposable cards? get_disposable_virtual_card
|
| 420 |
+
What reasons would a topup fail? top_up_failed
|
| 421 |
+
I attempted to get cash in the ATM but it was not authorized declined_cash_withdrawal
|
| 422 |
+
How long does it take for deliver to the US? card_delivery_estimate
|
| 423 |
+
What is the length of a transaction completion? transfer_not_received_by_recipient
|
| 424 |
+
How much is a physical card? order_physical_card
|
| 425 |
+
I have a new card and I can't add money to it. I tried about 30 minutes ago and it is still pending. What do I do? pending_top_up
|
| 426 |
+
I made a purchase but never expected to see a fee charged for the transaction. card_payment_fee_charged
|
| 427 |
+
I was charged for using my card? card_payment_fee_charged
|
| 428 |
+
If I don't have all my documents can they still verify my identity? verify_my_identity
|
| 429 |
+
If I were to use a European bank card for a top up, will I incur a charge? top_up_by_card_charge
|
| 430 |
+
Hi, I am interested buying crypto currency but unable to purchase it through the application. I do want to do the exchange, Could you please let me know what is the problem? beneficiary_not_allowed
|
| 431 |
+
How do I close my account? terminate_account
|
| 432 |
+
I want to change my PIN. change_pin
|
| 433 |
+
My app statement shows I took out cash from an ATM but I did not. What can I do? cash_withdrawal_not_recognised
|
| 434 |
+
Why are you asking so many questions about who I am why_verify_identity
|
| 435 |
+
I do not see the card PIN anywhere? get_physical_card
|
| 436 |
+
Can someone assist me with activating my card? activate_my_card
|
| 437 |
+
Is it possible for me to top up with Google Pay? apple_pay_or_google_pay
|
| 438 |
+
What is this extra fee that I got when I used my card to pay? card_payment_fee_charged
|
| 439 |
+
Can I stop a transaction? cancel_transfer
|
| 440 |
+
Can I reactivate my card? I reported it lost and found it this morning in my jacket. card_linking
|
| 441 |
+
How long will my transfer stay pending? pending_transfer
|
| 442 |
+
I can't seem to make a standard bank transfer. I have tried at least five times already but none of them are going through. Please tell me what is wrong? failed_transfer
|
| 443 |
+
The transfer I made isn't reflected in my balance balance_not_updated_after_bank_transfer
|
| 444 |
+
Where do I go to activate my card? activate_my_card
|
| 445 |
+
I deposited a check a few days ago and it's still not gone in! Please help me with this balance_not_updated_after_cheque_or_cash_deposit
|
| 446 |
+
hello I have lost my phone and I'm worried someone's going to steal money from me lost_or_stolen_phone
|
| 447 |
+
My card got charged twice for the same thing! transaction_charged_twice
|
| 448 |
+
When exchanging, how much are the rates? exchange_rate
|
| 449 |
+
Top up is not working even though I have my AMEX in apple pay. apple_pay_or_google_pay
|
| 450 |
+
I had to pay money for paying with my card. card_payment_fee_charged
|
| 451 |
+
why can't my beneficiary make transactions? beneficiary_not_allowed
|
| 452 |
+
I think my card is lost. What do I do? lost_or_stolen_card
|
| 453 |
+
Why is it required to verify my identity? why_verify_identity
|
| 454 |
+
What are the countries that you operate in? country_support
|
| 455 |
+
What is the handling fee for transfer? top_up_by_bank_transfer_charge
|
| 456 |
+
The app failed to verify me. unable_to_verify_identity
|
| 457 |
+
Is there any fees for top ups? top_up_by_card_charge
|
| 458 |
+
The exchange rate is incorrect for my cash withdrawal transaction. wrong_exchange_rate_for_cash_withdrawal
|
| 459 |
+
How do I add an existing card to the app? card_linking
|
| 460 |
+
Why won't you take my transfer, I keep getting an error message. beneficiary_not_allowed
|
| 461 |
+
I prefer to get a Mastercard. visa_or_mastercard
|
| 462 |
+
Am I allowed to hold money in multiple currencies? fiat_currency_support
|
| 463 |
+
Why are my transfers being declined? It normally works but now it's declining my card. I've tried it a few times but it's still not working. declined_transfer
|
| 464 |
+
Can I increase my top-up maximum? top_up_limits
|
| 465 |
+
what is the exchange rate when i get cash wrong_exchange_rate_for_cash_withdrawal
|
| 466 |
+
Why was I charged a random fee for a transfer I made? transfer_fee_charged
|
| 467 |
+
I just bought an item and changed my mind. I have not received it yet how can I get refunded. Thank you. request_refund
|
| 468 |
+
Hello. I just noticed I was charged two times for a restaurant I visited this week. Can you reverse the additional charge? transaction_charged_twice
|
| 469 |
+
I have an unknown debit charge in my statement, why? direct_debit_payment_not_recognised
|
| 470 |
+
How do I go about getting a refund? request_refund
|
| 471 |
+
Why did the ATM eat my card? card_swallowed
|
| 472 |
+
Why can't I transfer money to a beneficiary beneficiary_not_allowed
|
| 473 |
+
How can I exchange to EUR? fiat_currency_support
|
| 474 |
+
Is there any way I could open an account for my daughter? age_limit
|
| 475 |
+
The payment on my card shows as pending. pending_card_payment
|
| 476 |
+
I would like to receive a refund for something I bought. request_refund
|
| 477 |
+
i need help. I updated my balance with a check yesterday and Im not seeing it. Can you look at my account to see what went wrong? balance_not_updated_after_cheque_or_cash_deposit
|
| 478 |
+
There is a payment with my card which i definitely did not do. card_payment_not_recognised
|
| 479 |
+
How can I dispute a direct debit transaction? direct_debit_payment_not_recognised
|
| 480 |
+
I'd like to know what the foreign exchange rate will be. exchange_rate
|
| 481 |
+
I am inquiring about your auto top up feature. automatic_top_up
|
| 482 |
+
My card was stolen and used to make several purchases. Please freeze my card so no one can use it. compromised_card
|
| 483 |
+
I need to figure out who has access to my card there are some payments I didn't make that are showing on the app. Could you please help? card_payment_not_recognised
|
| 484 |
+
What ATM accepts Mastercard? atm_support
|
| 485 |
+
Will I be charged for a cash withdrawal? cash_withdrawal_charge
|
| 486 |
+
How long will the transfer take? pending_transfer
|
| 487 |
+
Where can I change my PIN? change_pin
|
| 488 |
+
Are there any fees if I want to add money using an international card? top_up_by_card_charge
|
| 489 |
+
I would like to know what the restrictions are for the disposable cards. disposable_card_limits
|
| 490 |
+
Can I receive payment in another currency? receiving_money
|
| 491 |
+
I am not seeing recent cash withdrawal on my account. pending_cash_withdrawal
|
| 492 |
+
The top up failed top_up_failed
|
| 493 |
+
How long do transfers take to show up in my account? balance_not_updated_after_bank_transfer
|
| 494 |
+
How old do I need to be? age_limit
|
| 495 |
+
What is the age requirement? age_limit
|
| 496 |
+
Waiting for the cash I deposited this morning still balance_not_updated_after_cheque_or_cash_deposit
|
| 497 |
+
How does one send me money? receiving_money
|
| 498 |
+
My salary is in GBP, is this something I need to configure? receiving_money
|
| 499 |
+
how do i find top up for cash deposit top_up_by_cash_or_cheque
|
| 500 |
+
Do I get charged if I am receiving money? top_up_by_bank_transfer_charge
|
| 501 |
+
How do I find the top-up verification code? verify_top_up
|
| 502 |
+
My card has not come in the mail yet. card_arrival
|
| 503 |
+
I was charged the wrong exchange rate on a purchase card_payment_wrong_exchange_rate
|
| 504 |
+
I think my card has been compromised in some way. compromised_card
|
| 505 |
+
It says that my payment is pending, what does that mean? pending_card_payment
|
| 506 |
+
Why is the exchange rate wrong for my cash withdrawal? wrong_exchange_rate_for_cash_withdrawal
|
| 507 |
+
Can I dispute a debit payment that I am seeing that I didn't make from a couple of months ago? direct_debit_payment_not_recognised
|
| 508 |
+
How long does it take for transfers to process? I sent funds to a friend, and she says that she has not yet received anything. transfer_not_received_by_recipient
|
| 509 |
+
Changing my PIN change_pin
|
| 510 |
+
I must verify the source of my funds verify_source_of_funds
|
| 511 |
+
I need my card to be delivered fast card_delivery_estimate
|
| 512 |
+
do you have a fee for receiving a SEPA transfer? top_up_by_bank_transfer_charge
|
| 513 |
+
I cannot get my google pay to work. apple_pay_or_google_pay
|
| 514 |
+
What is the purpose of requiring my identification? why_verify_identity
|
| 515 |
+
There is a strange charge on my debit statement direct_debit_payment_not_recognised
|
| 516 |
+
It appears my transfer was declined. declined_transfer
|
| 517 |
+
Why is the transaction not posting? pending_transfer
|
| 518 |
+
I exchange currencies a lot. Can I get a discount? exchange_charge
|
| 519 |
+
Hello, I went ahead and checked my account details to be sure, and they are definitely correct. I've had a transfer pending for a while, and I can't understand why it hasn't gone through yet. pending_transfer
|
| 520 |
+
In a month, my card will reach its expiration date, am I required to request the next card? card_about_to_expire
|
| 521 |
+
What are ways to test why my card might not be working? card_not_working
|
| 522 |
+
When will my pending payment finish? pending_card_payment
|
| 523 |
+
Hi, I have done a topup, but my money was reverted. Please look into this issue. top_up_reverted
|
| 524 |
+
There has been a red flag on my top up. top_up_failed
|
| 525 |
+
You can use it anywhere that accepts Mastercard. card_acceptance
|
| 526 |
+
I was trying to use contactless earlier, but it didn't work. contactless_not_working
|
| 527 |
+
Why is the refund not on my statement? Refund_not_showing_up
|
| 528 |
+
The atm didn'y give me all the cash wrong_amount_of_cash_received
|
| 529 |
+
If I am in China, can I still order a new card and if so, how? card_about_to_expire
|
| 530 |
+
How much are you going to charge me if I top up my US card? top_up_by_card_charge
|
| 531 |
+
Is there an age limit to when my child can use these services? age_limit
|
| 532 |
+
Can I receive payments in another currency? receiving_money
|
| 533 |
+
Its been 3 days, How long will my transfer take to get to my wallet? transfer_timing
|
| 534 |
+
I requested a refund but can't see it. Refund_not_showing_up
|
| 535 |
+
Can I link my card I previously received? card_linking
|
| 536 |
+
What kind of charges should I expect to exchange currencies? exchange_charge
|
| 537 |
+
My card got trapped inside an ATM, what should I do? card_swallowed
|
| 538 |
+
Could you please help me? I made my rent payment and have double checked that I sent it to the right account. The person receiving it says he has not received it but it shows complete on my side. transfer_not_received_by_recipient
|
| 539 |
+
I need to get some Euros for my holiday. Am I able to exchange some of my money? exchange_via_app
|
| 540 |
+
Help me activate my new card. activate_my_card
|
| 541 |
+
I transferred money and it hasn't come yet transfer_not_received_by_recipient
|
| 542 |
+
Can I get a Visa card? visa_or_mastercard
|
| 543 |
+
How is my card payment still pending? pending_card_payment
|
| 544 |
+
Why hasn't my account updated to reflect my current balance? balance_not_updated_after_bank_transfer
|
| 545 |
+
I tried to charge my card but it was declined. A couple days ago I was able to charge it and it was accepted. Is something wrong? Will you double check for me please? top_up_failed
|
| 546 |
+
Is there any way to get another card on the same account? getting_spare_card
|
| 547 |
+
I did not receive my full withdrawal amount wrong_amount_of_cash_received
|
| 548 |
+
do i need to wait for my card before i get pin get_physical_card
|
| 549 |
+
Why do I need to have my identity verified? why_verify_identity
|
| 550 |
+
How do I receive a disposable virtual card? get_disposable_virtual_card
|
| 551 |
+
I just transferred some money into my account and do not see it updated yet, can you assist? balance_not_updated_after_bank_transfer
|
| 552 |
+
How do I change my last name? edit_personal_details
|
| 553 |
+
Where are you present globally? country_support
|
| 554 |
+
Where can i exchange between GBP and USD exchange_via_app
|
| 555 |
+
Would it be possible to open up an account for children? age_limit
|
| 556 |
+
Did you lose my money? I had added funds through top-up not long ago and I know they were in my account, but they seem to have disappeared. What happened? top_up_reverted
|
| 557 |
+
What is the procedure of unblocking my PIN? pin_blocked
|
| 558 |
+
I make payments for my place abroad using this account and since i use it so frequently I was wondering why did the fees increase suddenly rather than decreasing? I would think customers like me should receive incentives for using your service transfer_fee_charged
|
| 559 |
+
Where do I go to terminate my account? terminate_account
|
| 560 |
+
Someone took my card without my permission. lost_or_stolen_card
|
| 561 |
+
I would like to know how much I can top-up. top_up_limits
|
| 562 |
+
Where are the ATMs that I can use Mastercard? atm_support
|
| 563 |
+
When will you be taking orders for disposable virtual cards? get_disposable_virtual_card
|
| 564 |
+
I need a refund for something I bought. request_refund
|
| 565 |
+
Can this app exchange American and English currency? exchange_via_app
|
| 566 |
+
There is a direct debit that I didn't set up, what should I do? direct_debit_payment_not_recognised
|
| 567 |
+
Can I top up using cash? top_up_by_cash_or_cheque
|
| 568 |
+
How do I go about exchanging currencies with this app? exchange_via_app
|
| 569 |
+
Do all businesses take this card? card_acceptance
|
| 570 |
+
Is there a fee for transferring money transfer_fee_charged
|
| 571 |
+
Why are you not accepting my transfer!! I've tried a couple times already now and it just keeps showing an error message beneficiary_not_allowed
|
| 572 |
+
This is not right, I was told I could take out cash at the ATM for free? cash_withdrawal_charge
|
| 573 |
+
Why won't the machine accept my card anymore? card_not_working
|
| 574 |
+
I can't find my code passcode_forgotten
|
| 575 |
+
Which fiat currencies are supported for holding and exchanging? fiat_currency_support
|
| 576 |
+
I just pulled money out of the ATM and was charged a fee, WHy? cash_withdrawal_charge
|
| 577 |
+
I made a transaction at an atm and was charged extra for it. cash_withdrawal_charge
|
| 578 |
+
How can I transfer money to this account from another bank? transfer_into_account
|
| 579 |
+
What card types can I choose from? visa_or_mastercard
|
| 580 |
+
It's declining my transfers. Normally this works, but my card is being declined now and I've tried more than once. declined_transfer
|
| 581 |
+
I took out some cash from the ATM but it is still showing the transaction is pending. pending_cash_withdrawal
|
| 582 |
+
I haven't received my virtual card yet!! getting_virtual_card
|
| 583 |
+
Are there any fiat currencies that you will not work with? fiat_currency_support
|
| 584 |
+
The transfer keeps rejected, I tried to transfer some money to friends but it keeps getting rejected for some reason, Would you please check the issue? failed_transfer
|
| 585 |
+
Why is the payment I made still pending? pending_card_payment
|
| 586 |
+
Visa and Mastercard can both be received from you? visa_or_mastercard
|
| 587 |
+
I would like to pay by cheque. top_up_by_cash_or_cheque
|
| 588 |
+
I want to top up by transfering accounts, What do I do? transfer_into_account
|
| 589 |
+
My card arrived but I don't know how to get my PIN. get_physical_card
|
| 590 |
+
I don't know how to verify my identity. verify_my_identity
|
| 591 |
+
Is there a fee to get an actual card? order_physical_card
|
| 592 |
+
I received incorrect amount of cash from an ATM today. It was more than I wanted. What do I do now? wrong_amount_of_cash_received
|
| 593 |
+
I transferred some money but the balance stayed the same. balance_not_updated_after_bank_transfer
|
| 594 |
+
THere is some cash that is showing up on my app. cash_withdrawal_not_recognised
|
| 595 |
+
Why has my card payment not yet been applied to my account? pending_card_payment
|
| 596 |
+
Can I exchange currencies with the app? exchange_via_app
|
| 597 |
+
There was an unexpected fee for my cash withdrawal! cash_withdrawal_charge
|
| 598 |
+
Why has another fee been placed on my statement? extra_charge_on_statement
|
| 599 |
+
Hi, I made a transfer yesterday that I need to reverse. I need to put the money in a different account. cancel_transfer
|
| 600 |
+
The payment for the card did not go through declined_card_payment
|
| 601 |
+
The money that I have transferred hasn't arrived yet. balance_not_updated_after_bank_transfer
|
| 602 |
+
Is there a way to track the new card you sent me? card_arrival
|
| 603 |
+
Where is my last money transaction transfer_not_received_by_recipient
|
| 604 |
+
My card payment has been declined declined_card_payment
|
| 605 |
+
Why hasn't the transaction I did to my friend arrive yet? transfer_not_received_by_recipient
|
| 606 |
+
I was just shopping online for some tickets and the payment was declined by you. Why has this happened? I am certain I have the right amount of funds in my account. declined_card_payment
|
| 607 |
+
I want to revert a transaction I did this morning cancel_transfer
|
| 608 |
+
There was an extra fee when I was at the ATM. Why? cash_withdrawal_charge
|
| 609 |
+
Exchange rate for my card payment is wrong card_payment_wrong_exchange_rate
|
| 610 |
+
Can you explain why I was charged extra when I used the card? card_payment_fee_charged
|
| 611 |
+
There is an unexplained $1 charge on my statement, can you please explain this to me? extra_charge_on_statement
|
| 612 |
+
I don't understand why you aren't accepting my transfer. After a couple times trying I'm still getting an error message. beneficiary_not_allowed
|
| 613 |
+
How can I verify my top up? verify_top_up
|
| 614 |
+
Is there a transaction limit for a disposable card? disposable_card_limits
|
| 615 |
+
I want to start using my card. activate_my_card
|
| 616 |
+
How can I change my information? edit_personal_details
|
| 617 |
+
Can I get the Mastercard? visa_or_mastercard
|
| 618 |
+
Is topping up with Apple Pay possible? apple_pay_or_google_pay
|
| 619 |
+
My top up is not showing up in my wallet! topping_up_by_card
|
| 620 |
+
How is my ATM deposit not available yet? pending_cash_withdrawal
|
| 621 |
+
I asked for cash but I did not receive all the funds wrong_amount_of_cash_received
|
| 622 |
+
Where is my virtual card? getting_virtual_card
|
| 623 |
+
What is the price for a physical card? order_physical_card
|
| 624 |
+
If I am running low on credit can I auto top up? automatic_top_up
|
| 625 |
+
Where did the money I deposit go?? balance_not_updated_after_cheque_or_cash_deposit
|
| 626 |
+
I'm due a refund and it is not on my statement. Refund_not_showing_up
|
| 627 |
+
Will I be charged for topping up? top_up_by_card_charge
|
| 628 |
+
When I was transferring money I was charged extra why? transfer_fee_charged
|
| 629 |
+
Can you tell me why I wasn't able to complete my transfer? failed_transfer
|
| 630 |
+
Please help me figure out the reason for the odd withdrawal amount from my account? cash_withdrawal_not_recognised
|
| 631 |
+
Should I order a new card before I freeze my original one? compromised_card
|
| 632 |
+
what is the matter? direct_debit_payment_not_recognised
|
| 633 |
+
How do I get a real card? order_physical_card
|
| 634 |
+
How long will I have to wait for my money to be in my account? transfer_timing
|
| 635 |
+
I'm still waiting for a money transfer to show. pending_transfer
|
| 636 |
+
I left my phone at the hotel. lost_or_stolen_phone
|
| 637 |
+
My top-up was cancelled and I am writing to ask if I need to complete the 3D Secure authentication section before I submit it. top_up_reverted
|
| 638 |
+
Can I use my account without verifying identity? why_verify_identity
|
| 639 |
+
Can another family member hold a card for this account in addition to mine? getting_spare_card
|
| 640 |
+
Where is my top-up generated from? verify_source_of_funds
|
| 641 |
+
I transferred money from the US, How long does it take? transfer_timing
|
| 642 |
+
Is it normal to get charged extra when i use my card? card_payment_fee_charged
|
| 643 |
+
My top-up appears to be pending. pending_top_up
|
| 644 |
+
How come I can't put money in my top up account? top_up_reverted
|
| 645 |
+
Why did the ATM cancel my transaction declined_cash_withdrawal
|
| 646 |
+
I'm going to cancel a purchase. request_refund
|
| 647 |
+
What exchange rate is it? exchange_rate
|
| 648 |
+
Hi, i was checking my old statements and found a discrepancy with a large amount transaction. I am sure it was not done by me. Please let me know if i could raise a dispute as its very late. direct_debit_payment_not_recognised
|
| 649 |
+
If I want to send out more cards, do you charge extra for that? getting_spare_card
|
| 650 |
+
I can't see my Google Pay top up. Is it not working correctly? apple_pay_or_google_pay
|
| 651 |
+
Where am I able to get my PIN unblocked? pin_blocked
|
| 652 |
+
Hae, I already completed my 3D secure authentication when I tried the crypto top up but it's still not working for me. I also don't understand what happened to the money in my account top_up_reverted
|
| 653 |
+
Can I get a physical card order_physical_card
|
| 654 |
+
Why was my payment declined? I keep trying my card but it's not working. declined_card_payment
|
| 655 |
+
DO I have to be 18 to open an account? age_limit
|
| 656 |
+
I went to top up my card and it was cancelled. top_up_reverted
|
| 657 |
+
I wasn't able to withdraw money at an ATM declined_cash_withdrawal
|
| 658 |
+
Why have I been charged a fee for cash withdrawal? cash_withdrawal_charge
|
| 659 |
+
Am I able to top up with Apple Pay? apple_pay_or_google_pay
|
| 660 |
+
I tried to get funds in hard cash but it was rejected! declined_cash_withdrawal
|
| 661 |
+
Is there a limit on disposable cards? disposable_card_limits
|
| 662 |
+
Is there a fee for topping up by charge card? top_up_by_card_charge
|
| 663 |
+
Can topping up be automatic? automatic_top_up
|
| 664 |
+
I transferred money, but I think I've been charged a fee for it? transfer_fee_charged
|
| 665 |
+
I would like to give another card to my daughter, how can I proceed? getting_spare_card
|
| 666 |
+
How does the exchange rate work? exchange_rate
|
| 667 |
+
Why are my transfers getting declined? declined_transfer
|
| 668 |
+
Will I get charged for sending out more cards? getting_spare_card
|
| 669 |
+
How do I get money from an ATM using my card? I can't seem to get it to work? I used the pin I had, but maybe it's wrong? What do I need to do to fix this? declined_cash_withdrawal
|
| 670 |
+
why would a merchant refuse a payment reverted_card_payment?
|
| 671 |
+
Am I supposed to verify my identity? why_verify_identity
|
| 672 |
+
Could you please put a freeze on my card? There are some payments on it that I don't know where they came from. card_payment_not_recognised
|
| 673 |
+
Is there something wrong with the transferring functions? I keep trying to transfer funds and only get an error message. beneficiary_not_allowed
|
| 674 |
+
why does it take so long to verify my id unable_to_verify_identity
|
| 675 |
+
How can I hold and exchange fiat currencies? fiat_currency_support
|
| 676 |
+
I have been waiting for my top-up to complete and it still hasn't gone through. pending_top_up
|
| 677 |
+
I would like a virtual card...how do I get one? getting_virtual_card
|
| 678 |
+
What is this card payment, I do not recognize it. card_payment_not_recognised
|
| 679 |
+
Will you help me unblock my pin after putting in the wrong pin too many times? pin_blocked
|
| 680 |
+
I've been waiting for a top up to come through for over an hour and I need the funds now. pending_top_up
|
| 681 |
+
What is the source of the money in my account? verify_source_of_funds
|
| 682 |
+
Can I have my money refunded for an item request_refund
|
| 683 |
+
Is there a daily auto top-up limit? automatic_top_up
|
| 684 |
+
My transfer is quite urgent, and finally worked out, but I've been waiting for it for quite some time. Can you tell me how long to expect to wait for it? pending_transfer
|
| 685 |
+
I no longer have my phone. lost_or_stolen_phone
|
| 686 |
+
phone is gone, dont want others to access account information lost_or_stolen_phone
|
| 687 |
+
Is there a Mastercard ATM nearby? atm_support
|
| 688 |
+
make my account go away terminate_account
|
| 689 |
+
I was charged a fee for using my card. Can I check that in any way? It seems like there are occasions that I am charge for fees. Can you elaborate this? card_payment_fee_charged
|
| 690 |
+
I lost my passcode. passcode_forgotten
|
| 691 |
+
My payment was cancelled reverted_card_payment?
|
| 692 |
+
what are weekend rates for getting cash wrong_exchange_rate_for_cash_withdrawal
|
| 693 |
+
What do I need to do to receive my payroll in the account? receiving_money
|
| 694 |
+
When I received my cash; they had my exchange rate incorrect. wrong_exchange_rate_for_cash_withdrawal
|
| 695 |
+
how many transactions can go on a disposable card? disposable_card_limits
|
| 696 |
+
What should I do once my card expires? card_about_to_expire
|
| 697 |
+
Hi there, I came across a problem with my top up and my money is missing, was there a system error? top_up_reverted
|
| 698 |
+
How do I activate my card that just arrived? activate_my_card
|
| 699 |
+
I did a payment but it was reverted by the app reverted_card_payment?
|
| 700 |
+
Hi, I am disappointed to see such a bad exchange rate and hope you can assist me. Would you be able to confirm the official interbank exchange rate for me? card_payment_wrong_exchange_rate
|
| 701 |
+
I prefer using Mastercard, can I substitute? visa_or_mastercard
|
| 702 |
+
Are there restrictions to transfers to certain accounts? beneficiary_not_allowed
|
| 703 |
+
A fee shouldn't apply to me if my card was stolen. lost_or_stolen_card
|
| 704 |
+
Why is my friend not getting a transaction arrival yet? transfer_not_received_by_recipient
|
| 705 |
+
What is the longest a US transfer should take to appear in my account? transfer_timing
|
| 706 |
+
Are you ripping people off with the exchange rate? It can't be that atrocious between banks. card_payment_wrong_exchange_rate
|
| 707 |
+
What countries are getting support? country_support
|
| 708 |
+
My card payment was reverted reverted_card_payment?
|
| 709 |
+
What will happen after my card expires? card_about_to_expire
|
| 710 |
+
Hi, I am new to this. Are there any additional fees or charges that I should be aware of? I was looking through the app and I thought I saw something in regards to fee-free allowances. card_payment_fee_charged
|
| 711 |
+
I would like to use cash to make a top-up? top_up_by_cash_or_cheque
|
| 712 |
+
I was supposed to receive my new card by now, but it hasn't came in. card_arrival
|
| 713 |
+
You have declined my payment. declined_card_payment
|
| 714 |
+
Can you let me know why my cash withdrawal is still pending? pending_cash_withdrawal
|
| 715 |
+
How do I get this damn virtual card to work? virtual_card_not_working
|
| 716 |
+
Some cash withdrawal that I didn't make showed up in the app. cash_withdrawal_not_recognised
|
| 717 |
+
I did not ask for the amount of cash that I received. wrong_amount_of_cash_received
|
| 718 |
+
Could I reactivate my card please, I couldn't find it but it turns out it was in my jacket pocket. card_linking
|
| 719 |
+
I sent a payment to the wrong account number - can that transaction be reversed? I am worried about accidentally giving my money away. cancel_transfer
|
| 720 |
+
Tell me why my card payment would be reverted. reverted_card_payment?
|
| 721 |
+
I need my account checked because it appears there is a problem. I attempted to update my balance yesterday using cheque but it doesn't seem to have worked. Should this not be faster than this? balance_not_updated_after_cheque_or_cash_deposit
|
| 722 |
+
Why can I not make a transfer? failed_transfer
|
| 723 |
+
I think there was an error in your exchange rate. card_payment_wrong_exchange_rate
|
| 724 |
+
I'm not sure why my card didn't work declined_card_payment
|
| 725 |
+
It can take between 10 minutes to an hour before you hear back from us about the verification result. Please try again if your verification fails. Make sure you double check that images are clear and all document photos are readable without blur or glare. You have to be 18 or older and live in the European Economic area or live in Switzerland to be able to open an account. unable_to_verify_identity
|
| 726 |
+
When I use my card, it says decline? declined_card_payment
|
| 727 |
+
Help my find the verification code on a top-up. verify_top_up
|
| 728 |
+
How do I make my top up complete? pending_top_up
|
| 729 |
+
Will I be charged for exchanging foreign currencies? exchange_charge
|
| 730 |
+
How do I add my new card to the app? card_linking
|
| 731 |
+
I moved to a new city and need to change my address edit_personal_details
|
| 732 |
+
I am still awaiting the money I put into my account this morning. balance_not_updated_after_cheque_or_cash_deposit
|
| 733 |
+
I can't verify identity through the app. unable_to_verify_identity
|
| 734 |
+
I don't understand why my payment was declined. I thought everything was ok. declined_card_payment
|
| 735 |
+
Why is a transfer I did recently still processing? pending_transfer
|
| 736 |
+
Where's the button to top up with a cheque? top_up_by_cash_or_cheque
|
| 737 |
+
My refund isn't showing up Refund_not_showing_up
|
| 738 |
+
A foreign purchase I made has the incorrect rate applied to it. card_payment_wrong_exchange_rate
|
| 739 |
+
Am I able to change my PIN at certain cash machines? change_pin
|
| 740 |
+
What countries are you available in? country_support
|
| 741 |
+
Which part of the app do I order virtual cards from? getting_virtual_card
|
| 742 |
+
I was charged a fee when I transferred my funds, why? transfer_fee_charged
|
| 743 |
+
How do I order a new card if my current one is about to expire? card_about_to_expire
|
| 744 |
+
It declined my transfer. declined_transfer
|
| 745 |
+
Your exchange rate was off. I was charged extra on my payment that I made last Saturday. card_payment_wrong_exchange_rate
|
| 746 |
+
I tried using my credit card with top up but it didn't work! I thought it was supposed to? top_up_failed
|
| 747 |
+
Please help me as my online payment is getting declined since yesterday while i am trying to purchase something online. declined_transfer
|
| 748 |
+
I need help from someone in your department with finding my nearest ATM. atm_support
|
| 749 |
+
Do I get a discount if I exchange currencies a lot? exchange_charge
|
| 750 |
+
Why did you charge me extra? extra_charge_on_statement
|
| 751 |
+
I got some cash at an ATM earlier, but now app is showing that I withdrew more than I did. Help! wrong_amount_of_cash_received
|
| 752 |
+
Why has my money been returned back to my card. reverted_card_payment?
|
| 753 |
+
I don't have a way to prove my identity. unable_to_verify_identity
|
| 754 |
+
Can you tell me what I need for identity validation? verify_my_identity
|
| 755 |
+
I checked the app and there is a payment that I don't recognize. card_payment_not_recognised
|
| 756 |
+
I only made one transaction at this place, but it's appearing multiple times. transaction_charged_twice
|
| 757 |
+
Why hasnt my top up gone through yet?? I thought it was suppose to be instant? Am I wrong? Why is it still pending? pending_top_up
|
| 758 |
+
what is the exchange rate for foreign ATMs wrong_exchange_rate_for_cash_withdrawal
|
| 759 |
+
I have not received an item i ordered yet so i want to cancel it and get a refund. Can you please guide me on how to go about it? request_refund
|
| 760 |
+
I only have one more US credit card, is it accepted? supported_cards_and_currencies
|
| 761 |
+
Can you tell me why a cheque deposit isn't showing in my balance? balance_not_updated_after_cheque_or_cash_deposit
|
| 762 |
+
Do you have the option for a disposable virtual card? get_disposable_virtual_card
|
| 763 |
+
I still don't have a card. How do I get one? order_physical_card
|
| 764 |
+
How do I link the new card that I just got from you guys? card_linking
|
| 765 |
+
I got cash from an ATM earlier but it shows up as pending in the app. How can this still be pending, I already received the cash? pending_cash_withdrawal
|
| 766 |
+
What happens with the duplicate charge in my account? transaction_charged_twice
|
| 767 |
+
To many charges on my card how do I go about fixing that? transaction_charged_twice
|
| 768 |
+
why is there a service fee on my statement? extra_charge_on_statement
|
| 769 |
+
Tell me why there is an extra charge when I used an ATM? cash_withdrawal_charge
|
| 770 |
+
I tried to get money out of an ATM in Notting Hill earlier, but it didn't work. Is my card actually working? It's the first time I tried using it declined_cash_withdrawal
|
| 771 |
+
I am unable to use my card for some reason. card_not_working
|
| 772 |
+
Is there a way to find an ATM around me? atm_support
|
| 773 |
+
Why is the exchange rate different than expected on my transaction? wrong_exchange_rate_for_cash_withdrawal
|
| 774 |
+
Why was my transaction declined? failed_transfer
|
| 775 |
+
I have a cash withdrawal that I don't recognize. cash_withdrawal_not_recognised
|
| 776 |
+
Why do I need to verify a top-up? verify_top_up
|
| 777 |
+
How do I protect my phone from someone using it after I lost it. lost_or_stolen_phone
|
| 778 |
+
Must I verify my identity? why_verify_identity
|
| 779 |
+
How do I verify the top up? verify_top_up
|
| 780 |
+
Tell me more about getting a virtual disposable card. get_disposable_virtual_card
|
| 781 |
+
I prefer Visa, can I get that instead? visa_or_mastercard
|
| 782 |
+
Why is the cash withdraw I made shown as pending? pending_cash_withdrawal
|
| 783 |
+
Help me verify my identification. unable_to_verify_identity
|
| 784 |
+
Can you help me track my card? card_arrival
|
| 785 |
+
How do I go forth on holding money in multiple currencies? fiat_currency_support
|
| 786 |
+
My daughter needs an acount. age_limit
|
| 787 |
+
A transfer I sent was received in less than the full amount I originally sent, and now I have to send additional funds to cover the full amount. What happened? transfer_fee_charged
|
| 788 |
+
Just received my replacement card, what steps do i need to take to activate it? activate_my_card
|
| 789 |
+
Why is my transfer stuck on pending? pending_transfer
|
| 790 |
+
What does a 'pending payment' mean? pending_card_payment
|
| 791 |
+
I've been waiting for a pending transfer to go through for a while now, and don't see any reason why I've been waiting this long. I know that I have the correct account details, so that isn't the problem. pending_transfer
|
| 792 |
+
There is a cash withdrawal on my statement that I don't recognize cash_withdrawal_not_recognised
|
| 793 |
+
When will I see an updated balance after a transfer? balance_not_updated_after_bank_transfer
|
| 794 |
+
I need a second card on this account for my daughter. getting_spare_card
|
| 795 |
+
How long does it take transfers from Europe to complete? transfer_timing
|
| 796 |
+
There are transactions that I did not make on my account, I think someone has my information. compromised_card
|
| 797 |
+
Could you tell me about the restrictions that are on the disposable cards? disposable_card_limits
|
| 798 |
+
This morning, I tried to send money to my friends several times but each time the transfer fails. Why does it keep failing? The transfer gets rejected but I do not know what is causing it to be rejected. failed_transfer
|
| 799 |
+
Can I use my Apple Watch to pay for gas? apple_pay_or_google_pay
|
| 800 |
+
Is there a limit on how much I can top up? top_up_limits
|
| 801 |
+
there were two of the same charge to my account transaction_charged_twice
|
| 802 |
+
What are the charges if I exchange foreign currency? exchange_charge
|
| 803 |
+
My new card has arrived, what's the activation procedure? activate_my_card
|
| 804 |
+
There's something wrong on my bill. A transfer fee should never have been added. transfer_fee_charged
|
| 805 |
+
Hello, can you please inform me about international transfers? I am expecting a transfer I made from France two days ago and would like to know when it will arrive. balance_not_updated_after_bank_transfer
|
| 806 |
+
My cards were stolen lost_or_stolen_phone
|
| 807 |
+
Do I need to re-apply to order a new card when my old one's about to expire? card_about_to_expire
|
| 808 |
+
Can I change my in at all ATM's? change_pin
|
| 809 |
+
My card information seems to have been stolen! I don't know where these transactions came from and I've never even been to the city where they were made. I need my card blocked ASAP so this person can't keep using my card. compromised_card
|
| 810 |
+
What countries have access to this service. country_support
|
| 811 |
+
Can I have a discount if I exchange currency often? exchange_charge
|
| 812 |
+
How long does transfers take? balance_not_updated_after_bank_transfer
|
| 813 |
+
Is there a few for exchanging foreign currencies? exchange_charge
|
| 814 |
+
Is there a charge for receiving money? top_up_by_bank_transfer_charge
|
| 815 |
+
I want to top up by using a credit card, which ones do you support? supported_cards_and_currencies
|
| 816 |
+
I can't seem to be able to use my card card_not_working
|
| 817 |
+
There's a $200 withdrawal on my statement that seems fishy to me. cash_withdrawal_not_recognised
|
| 818 |
+
Why is my transfer not showing balance_not_updated_after_bank_transfer
|
| 819 |
+
How do I find the code needed in order to verify my top-up card? verify_top_up
|
| 820 |
+
I want to reactivate my card, I found it after thinking it was lost. card_linking
|
| 821 |
+
There is money missing from my account. cash_withdrawal_not_recognised
|
| 822 |
+
Show me how to look at the source of my current funds? verify_source_of_funds
|
| 823 |
+
I do not understand why there is a pending 1£ charge on my statement, I do not recall making this transaction. Can you please tell me what this is about? extra_charge_on_statement
|
| 824 |
+
Why would a merchant revert a card payment? reverted_card_payment?
|
| 825 |
+
I would like to get additional physical cards at this time getting_spare_card
|
| 826 |
+
The amount of cash I selected to withdraw is different than what I received. wrong_amount_of_cash_received
|
| 827 |
+
I tried withdrawing money in another country and the exchange rate was wrong. wrong_exchange_rate_for_cash_withdrawal
|
| 828 |
+
Please tell me how to get a refund for something I bought. request_refund
|
| 829 |
+
I thought I left my card at a restaurant, but they claim not to have it and now I don't have any idea where it is. I'm so worried that someone might be using it fraudulently. Is there any way to look into this? lost_or_stolen_card
|
| 830 |
+
Can I add to my account using a cheque? top_up_by_cash_or_cheque
|
| 831 |
+
My transfer has not arrived. transfer_not_received_by_recipient
|
| 832 |
+
I was unable to transfer money from my account. failed_transfer
|
| 833 |
+
your company is awful, i would like to delete my account please terminate_account
|
| 834 |
+
The ATM didn't give me the amount I asked for wrong_amount_of_cash_received
|
| 835 |
+
Why do I have a strange payment on my statement? card_payment_not_recognised
|
| 836 |
+
I need to renew a card that's about to expire card_about_to_expire
|
| 837 |
+
Report stolen card lost_or_stolen_card
|
| 838 |
+
I think I lost my phone. Is there a way to prevent anyone from getting into my account on it? lost_or_stolen_phone
|
| 839 |
+
My cash withdrawal was declined. Why? declined_cash_withdrawal
|
| 840 |
+
I just transferred some money. Why was I charged a fee? transfer_fee_charged
|
| 841 |
+
Can I pick between Visa and Mastercard? visa_or_mastercard
|
| 842 |
+
Will you accept my credit card? supported_cards_and_currencies
|
| 843 |
+
Can you tell me how I go about activating a new card? activate_my_card
|
| 844 |
+
Where is the cash I deposited? balance_not_updated_after_cheque_or_cash_deposit
|
| 845 |
+
Cancelling a transaction cancel_transfer
|
| 846 |
+
I need assistance with understanding which fiat currencies that you support. fiat_currency_support
|
| 847 |
+
If I bought something I didn't like, can I get a refund? request_refund
|
| 848 |
+
When will the money from a transfer be made available on my account? transfer_timing
|
| 849 |
+
Where do I access the auto top-up function? automatic_top_up
|
| 850 |
+
how much does it cost to add money to my card top_up_by_card_charge
|
| 851 |
+
Where can I find the verification code for the card top-up? verify_top_up
|
| 852 |
+
What is the verification process used for? verify_top_up
|
| 853 |
+
I sent some money but the intended recipient says it hasn't arrived transfer_not_received_by_recipient
|
| 854 |
+
I'm expecting to see a cash withdrawal but I'm still waiting. pending_cash_withdrawal
|
| 855 |
+
May monthly payment to Apple has been declined but I don't know why, they are going to re-try the payment and it must go through, can you tell me what is going on please? declined_card_payment
|
| 856 |
+
How often can I top up my account? top_up_limits
|
| 857 |
+
show me how to top up topping_up_by_card
|
| 858 |
+
I don't recognize what this payment on my statement would be for. card_payment_not_recognised
|
| 859 |
+
My disposable virtual card was rejected. virtual_card_not_working
|
| 860 |
+
How much will it cost me for a SEPA transfer? top_up_by_bank_transfer_charge
|
| 861 |
+
Hi, status of one of my card payment is still pending from a while. Please let e know how much time it will take to complete. pending_card_payment
|
| 862 |
+
Was there a problem with topping up? top_up_failed
|
| 863 |
+
Can I make a withdraw in my home currency at an ATM? I'm on vacation and am a bit worried because I don't have cash with me. Is it possible to withdraw here without any additional costs or fees? wrong_exchange_rate_for_cash_withdrawal
|
| 864 |
+
I would like to get an item refunded request_refund
|
| 865 |
+
Can you tell me what currencies I can use to add money? supported_cards_and_currencies
|
| 866 |
+
My card is about to expire. Are there any costs with a replacement card? How quick do you mail it to me? card_about_to_expire
|
| 867 |
+
please help me with this transfer, for some reason i can't transfer to a cryptocurency account declined_transfer
|
| 868 |
+
How do I know where my funds come from? verify_source_of_funds
|
| 869 |
+
How do I top up my account using transfer? transfer_into_account
|
| 870 |
+
How do I know when my new card is going to arrive? card_arrival
|
| 871 |
+
My product was faulty. request_refund
|
| 872 |
+
I am trying to transfer and it has been stopped why is that beneficiary_not_allowed
|
| 873 |
+
What documents are required for proof of identity? verify_my_identity
|
| 874 |
+
Can my PIN be changed in any cash machine? change_pin
|
| 875 |
+
I want a new card getting_spare_card
|
| 876 |
+
I've been charged an extra £1 and I don't know why extra_charge_on_statement
|
| 877 |
+
What does the €1 fee mean? extra_charge_on_statement
|
| 878 |
+
What is needed for identity verification? verify_my_identity
|
| 879 |
+
I don't understand why I was charged an additional fee for this service. Can you clarify? card_payment_fee_charged
|
| 880 |
+
There is a missing transfer on my account balance_not_updated_after_bank_transfer
|
| 881 |
+
My account is locked because I used the wrong pin too many times. Please help.p pin_blocked
|
| 882 |
+
Why hasn't my money transfer showed up yet? balance_not_updated_after_bank_transfer
|
| 883 |
+
My card has been compromised. I see a bunch of online shopping charges that I didn't make. I need to freeze it immediately. compromised_card
|
| 884 |
+
Why am I being charged again? transaction_charged_twice
|
| 885 |
+
I withdrew some cash and the exchange rate seems to be wrong. wrong_exchange_rate_for_cash_withdrawal
|
| 886 |
+
The exchange rate looks wrong on a holiday purchase card_payment_wrong_exchange_rate
|
| 887 |
+
I topped up my account but the app failed to process it. top_up_failed
|
| 888 |
+
With this app, will I be able to exchange currency? exchange_via_app
|
| 889 |
+
Why is my card payment still pending? pending_card_payment
|
| 890 |
+
Why can I not choose the card i want? visa_or_mastercard
|
| 891 |
+
Where do I get a disposable card get_disposable_virtual_card
|
| 892 |
+
Can I use my apple watch to top-up? apple_pay_or_google_pay
|
| 893 |
+
Can I make an account for my daughter? age_limit
|
| 894 |
+
I was charged twice for a few things this week when I only bought one. What do I do? transaction_charged_twice
|
| 895 |
+
I would like to delete my account. I'm not happy with the service you're providing terminate_account
|
| 896 |
+
Why do I need to verify my account? why_verify_identity
|
| 897 |
+
What's the transfer time from Europe? transfer_timing
|
| 898 |
+
Can you tell me how to get my card on the app? card_linking
|
| 899 |
+
Can I top up using my apple watch? apple_pay_or_google_pay
|
| 900 |
+
If my phone was stolen, do I need to do anything? lost_or_stolen_phone
|
| 901 |
+
What is the process when my card is due to expire? card_about_to_expire
|
| 902 |
+
How can I find a way to transfer money without it being rejected? declined_transfer
|
| 903 |
+
I have no way to prove my identity. unable_to_verify_identity
|
| 904 |
+
There is an urgent transfer I need to make from China. How long will it take to get it processed? transfer_timing
|
| 905 |
+
I made a top up yesterday but it's still pending. pending_top_up
|
| 906 |
+
The applied exchange rate is wrong for the cash I got abroad. wrong_exchange_rate_for_cash_withdrawal
|
| 907 |
+
There is a payment showing that I know I didn't make. I didn't use my card that day and I'm sure of it. Can you please cancel that transaction and return my money? Thankyou direct_debit_payment_not_recognised
|
| 908 |
+
Let me know when applying extra charges for payments. I just checked the app and saw a fee that I wasn't warned about. card_payment_fee_charged
|
| 909 |
+
Why haven't I gotten my payment yet? pending_card_payment
|
| 910 |
+
I would like to top up via credit card, which credit cards do you support? supported_cards_and_currencies
|
| 911 |
+
I have been charged way to much so something is apparently wrong with my exchange. I changed Russian Ruble into UK pounds. card_payment_wrong_exchange_rate
|
| 912 |
+
Has my top up gone through? pending_top_up
|
| 913 |
+
How can I check on the status of my new card? card_arrival
|
| 914 |
+
Please explain the extra fee when I paid with the card. card_payment_fee_charged
|
| 915 |
+
I was charged an extra dollar on my account and would like to know the reason. extra_charge_on_statement
|
| 916 |
+
I can't find how to top up my account with a check. Where is that? top_up_by_cash_or_cheque
|
| 917 |
+
My statement is showing an extra £1 charge and I am unsure why. Is there an explanation for this? extra_charge_on_statement
|
| 918 |
+
I requested $100 but only got $20 wrong_amount_of_cash_received
|
| 919 |
+
Where do I go to see the source of my available money? verify_source_of_funds
|
| 920 |
+
Is there an alternative to a physical card? getting_virtual_card
|
| 921 |
+
I need a transaction reversed from my account. transaction_charged_twice
|
| 922 |
+
why hasn't my virtual card arrived? getting_virtual_card
|
| 923 |
+
I was only given $20 when I tried to get $100 wrong_amount_of_cash_received
|
| 924 |
+
I need your help immediately. There is a 500£ cash withdrawal that I know nothing about. I think my account has become compromised. cash_withdrawal_not_recognised
|
| 925 |
+
I noticed a charge for a transfer. Why is this? Is it because I did an international transfer? transfer_fee_charged
|
| 926 |
+
There was an extra fee when I paid with my card, why was i charged this extra fee? card_payment_fee_charged
|
| 927 |
+
how do i get a pin for my card get_physical_card
|
| 928 |
+
I was checking my statement and my top-up has been reverted top_up_reverted
|
| 929 |
+
There is a fee from a transfer that is not supposed to be here! transfer_fee_charged
|
| 930 |
+
I was checking the app for my account and I noticed there is an authorized charge on it. I haven't used my card today, so I know I didn't do it. I would like the transaction reversed and the money replaced. direct_debit_payment_not_recognised
|
| 931 |
+
There is a direct debit transaction that I did not authorize direct_debit_payment_not_recognised
|
| 932 |
+
Hi, I was just checking over my card transactions and notice I was charged twice for a restaurant visit this week. Can you please remove one of these false charges from my account? transaction_charged_twice
|
| 933 |
+
What's the limit for auto top-up? automatic_top_up
|
| 934 |
+
How do I get a refund for something I bought? request_refund
|
| 935 |
+
Am I able to do a SWIFT transfer with you? top_up_by_bank_transfer_charge
|
| 936 |
+
How will I know when I can use the auto top-up feature? automatic_top_up
|
| 937 |
+
I need to reverse a transaction cancel_transfer
|
| 938 |
+
Is my card actually working? It's the first time I tried using it declined_cash_withdrawal
|
| 939 |
+
I'm checking my statements and I saw a purchase from a couple weeks ago that I don't recall at all. Not only that, but I don't even know the business that charged it. I'm not sure if I did it or not, but can we check it and see if we can trace it back to make certain? direct_debit_payment_not_recognised
|
| 940 |
+
google pay top up did not work apple_pay_or_google_pay
|
| 941 |
+
Can I top up using my cheque? top_up_by_cash_or_cheque
|
| 942 |
+
What is the number of transactions for one disposable card? disposable_card_limits
|
| 943 |
+
Why did the cash deposit not show up in my account? balance_not_updated_after_cheque_or_cash_deposit
|
| 944 |
+
I'd like to know what you guys look at to decide an exchange rate exchange_rate
|
| 945 |
+
I don't know what my passcode is, can you help? passcode_forgotten
|
| 946 |
+
What is the procedure for activating this card? activate_my_card
|
| 947 |
+
Can I order a new card? Mine is about to expire. card_about_to_expire
|
| 948 |
+
Is there a way to get a virtual card? getting_virtual_card
|
| 949 |
+
Why does my transfer still say it is pending? pending_transfer
|
| 950 |
+
I need to get hold of a physical card? order_physical_card
|
| 951 |
+
I was denied cash at an ATM declined_cash_withdrawal
|
| 952 |
+
Is there a tracking number for the card? card_arrival
|
| 953 |
+
I tried to buy something online yesterday and was told declined. I got the same error today after trying again. What is the problem? declined_transfer
|
| 954 |
+
I'm supposed to have a refund but it isn't there Refund_not_showing_up
|
| 955 |
+
I think my card payment has been refunded reverted_card_payment?
|
| 956 |
+
How long will a transfer from the US take? transfer_timing
|
| 957 |
+
A payment is showing twice. Why is that? transaction_charged_twice
|
| 958 |
+
Is there an extra fee for using an ATM? cash_withdrawal_charge
|
| 959 |
+
Is my PIN sent separably? get_physical_card
|
| 960 |
+
Can I use your app to exchange USD for GBP? exchange_via_app
|
| 961 |
+
Why is the exchange rate so high? This should have been a much higher amount of cash for that to apply. wrong_exchange_rate_for_cash_withdrawal
|
| 962 |
+
How can I transfer some money into a foreign account? transfer_into_account
|
| 963 |
+
Everything was stolen from me. I can't use the app. Please advise. lost_or_stolen_phone
|
| 964 |
+
I noticed my transfer was declined. declined_transfer
|
| 965 |
+
How do I delete my account now terminate_account
|
| 966 |
+
what do I need to do if the ATM kept my card? card_swallowed
|
| 967 |
+
How simple is it to transfer money into my account? transfer_into_account
|
| 968 |
+
What do I do if my Google pay top up isn't working? apple_pay_or_google_pay
|
| 969 |
+
I think I was charged by mistake on my debit statement. direct_debit_payment_not_recognised
|
| 970 |
+
While abroad, I got cash, and the exchange rate applied is wrong. wrong_exchange_rate_for_cash_withdrawal
|
| 971 |
+
How long do bank transfers usually take? balance_not_updated_after_bank_transfer
|
| 972 |
+
Please verify my top-up card verify_top_up
|
| 973 |
+
I've got a problem - I purchased an item maybe a week or two ago, but to the payment came back to my account! I've already got what I ordered, so why are the payment funds showing up in my account? reverted_card_payment?
|
| 974 |
+
Can I track my card while it is in the process of delivery? card_arrival
|
| 975 |
+
I'm confused as to why my transfer is still listed as pending on the website. pending_transfer
|
| 976 |
+
I have my card now how do I activate it? activate_my_card
|
| 977 |
+
Why was I unable to complete my transfer? failed_transfer
|
| 978 |
+
I attempted to get cash in the ATM but I was denied declined_cash_withdrawal
|
| 979 |
+
Hello, I wanted to get some more information about ATM Withdraw Fee. I have been withdrawing money for years and notice this charge on my account. I always thought it was no fee since its you guys ATM company that I am withdrawing. Can you please explain? cash_withdrawal_charge
|
| 980 |
+
When I bought something abroad, the exchange rate was wrong. card_payment_wrong_exchange_rate
|
| 981 |
+
would I need to pay extra for exchanging currencies? exchange_charge
|
| 982 |
+
My new card just arrived, how can I activate it? activate_my_card
|
| 983 |
+
Why can't I complete my transfer? failed_transfer
|
| 984 |
+
is my pin the same as my passcode get_physical_card
|
| 985 |
+
Why can't I make multiple payments with my virtual card? virtual_card_not_working
|
| 986 |
+
I withdrew cash and was charged cash_withdrawal_charge
|
| 987 |
+
I could not get the top-up to go through top_up_failed
|
| 988 |
+
Will my card work at all merchant locations? card_acceptance
|
| 989 |
+
Is there a reason my transfer failed? failed_transfer
|
| 990 |
+
Where in the app do I go to verify my identity? verify_my_identity
|
| 991 |
+
I am seeing in the App a diret debit that its not mine direct_debit_payment_not_recognised
|
| 992 |
+
How do I authenticate my top-up? verify_top_up
|
| 993 |
+
Where can I use this card? card_acceptance
|
| 994 |
+
You've incorrectly calculated the exchange rate for my cash withdrawal wrong_exchange_rate_for_cash_withdrawal
|
| 995 |
+
I would like to change my name after marriage. edit_personal_details
|
| 996 |
+
I paid with card and I was charged a fee card_payment_fee_charged
|
| 997 |
+
Is it possible to transfer money to my credit card? topping_up_by_card
|
| 998 |
+
I've just been married and need to update my name edit_personal_details
|
| 999 |
+
How does someone else top up my account topping_up_by_card
|
| 1000 |
+
Why is the payment from my card still pending? pending_card_payment
|
| 1001 |
+
I wanted to take out $100 but I only got $20. wrong_amount_of_cash_received
|
TEXTOIR-main/data/banking/test.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/data/banking/train.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/data/clinc/dev.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/data/clinc/test.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/data/clinc/train.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/data/oos/dev.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/data/oos/test.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/data/oos/train.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/data/snips/dev.tsv
ADDED
|
@@ -0,0 +1,701 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
text label
|
| 2 |
+
i d like to have this track onto my classical relaxations playlist AddToPlaylist
|
| 3 |
+
add the album to my flow español playlist AddToPlaylist
|
| 4 |
+
add digging now to my young at heart playlist AddToPlaylist
|
| 5 |
+
add this song by too poetic to my piano ballads playlist AddToPlaylist
|
| 6 |
+
add this album to old school death metal AddToPlaylist
|
| 7 |
+
i need to add baro ferret to the urban hits under my name AddToPlaylist
|
| 8 |
+
add the album to the might and myth power metal playlist AddToPlaylist
|
| 9 |
+
to the travelling playlist please add this david gahan song AddToPlaylist
|
| 10 |
+
please add some pete townshend to my playlist fiesta hits con lali AddToPlaylist
|
| 11 |
+
i d like for kasey chambers s tune to be an addition to my chips and salsa playlist AddToPlaylist
|
| 12 |
+
add recalled to life to this is alejandro fernández AddToPlaylist
|
| 13 |
+
add nuba to my metal party playlist AddToPlaylist
|
| 14 |
+
add jo stafford music to the workout twerkout playlist AddToPlaylist
|
| 15 |
+
put jean philippe goncalves onto my running to rock 170 to 190 bpm AddToPlaylist
|
| 16 |
+
add the song virales de siempre by the cary brothers to my gym playlist AddToPlaylist
|
| 17 |
+
onto jerry s classical moments in movies please add the album AddToPlaylist
|
| 18 |
+
add beyond the valley of 1984 in playlist folk music at the gaslight café AddToPlaylist
|
| 19 |
+
add jerry calliste jr to my te quiero playlist AddToPlaylist
|
| 20 |
+
add porter wagoner to the the sleep machine waterscapes playlist AddToPlaylist
|
| 21 |
+
add the artist mike to the sexy as folk playlist AddToPlaylist
|
| 22 |
+
add brazilian flag anthem to top 100 alternative tracks on spotify AddToPlaylist
|
| 23 |
+
add andy hunter to my evening commute playlist AddToPlaylist
|
| 24 |
+
put petar georgiev kalica onto the old school hip hop playlist AddToPlaylist
|
| 25 |
+
can you add larry heard to my laundry playlist AddToPlaylist
|
| 26 |
+
put vandemataram srinivas s track onto hiphop hot 50 AddToPlaylist
|
| 27 |
+
add millie corretjer to the rhythm playlist AddToPlaylist
|
| 28 |
+
add give us rest to my 70s smash hits playlist AddToPlaylist
|
| 29 |
+
add this track to my hands up playlist AddToPlaylist
|
| 30 |
+
i d like for you to add bobby brown to my enamorándose playlist AddToPlaylist
|
| 31 |
+
add jonathan sprout album to my this is miranda lambert playlist AddToPlaylist
|
| 32 |
+
add ireland in the junior eurovision song contest 2015 to my jazzy dinner playlist AddToPlaylist
|
| 33 |
+
add the album to the the sweet suite playlist AddToPlaylist
|
| 34 |
+
add sarah slean to my playlist mellowed out gaming AddToPlaylist
|
| 35 |
+
add this album to the spanish beat playlist AddToPlaylist
|
| 36 |
+
add lofty fake anagram to the la mejor música de bso playlist AddToPlaylist
|
| 37 |
+
add the track to the work playlist AddToPlaylist
|
| 38 |
+
add a song to this is racionais mc s AddToPlaylist
|
| 39 |
+
add track in my playlist called hands up AddToPlaylist
|
| 40 |
+
can you put this song from yutaka ozaki onto my this is miles davis playlist AddToPlaylist
|
| 41 |
+
add a track to playlist cena con amigos AddToPlaylist
|
| 42 |
+
add the famous flower of serving-men to my evening acoustic playlist AddToPlaylist
|
| 43 |
+
add a song to indie hipster AddToPlaylist
|
| 44 |
+
add the 40 cal tune to the laundry playlist AddToPlaylist
|
| 45 |
+
add the album to my perfect concentration playlist AddToPlaylist
|
| 46 |
+
add the matt murphy tune to the flow español playlist AddToPlaylist
|
| 47 |
+
add a very cellular song to masters of metal playlist AddToPlaylist
|
| 48 |
+
can i put this tune onto my sin estrés playlist AddToPlaylist
|
| 49 |
+
i d like to add jordan rudess onto the divertido para niños playlist AddToPlaylist
|
| 50 |
+
add kent james to the disney soundtrack AddToPlaylist
|
| 51 |
+
add the artist adam deibert to my perfect concentration playlist AddToPlaylist
|
| 52 |
+
can you put the artist giovanni giacomo gastoldi onto the chill out music playlist AddToPlaylist
|
| 53 |
+
add the album to the hot 50 playlist AddToPlaylist
|
| 54 |
+
add the artist pete murray to my relaxing playlist AddToPlaylist
|
| 55 |
+
add the track to the drum & breaks playlist AddToPlaylist
|
| 56 |
+
for my fantastic workout can you add sara bareilles AddToPlaylist
|
| 57 |
+
add the boy george track to the emo forever playlist AddToPlaylist
|
| 58 |
+
add ted heath to the road trip playlist AddToPlaylist
|
| 59 |
+
can you add last of the ghetto astronauts to the playlist called black sabbath the dio years AddToPlaylist
|
| 60 |
+
add this artist to showstopper being mary jane AddToPlaylist
|
| 61 |
+
put the artist onto top latin alternative AddToPlaylist
|
| 62 |
+
add michael wittig music to country icon playlist AddToPlaylist
|
| 63 |
+
add highway patrolman in my playlist this is al green AddToPlaylist
|
| 64 |
+
add richard mcnamara newest song to the just smile playlist AddToPlaylist
|
| 65 |
+
add annesley malewana album to playlist indietronic AddToPlaylist
|
| 66 |
+
add the artist to my dishwashing playlist AddToPlaylist
|
| 67 |
+
add this artist to fairy tales playlist AddToPlaylist
|
| 68 |
+
add muzika za decu to my crash course playlist AddToPlaylist
|
| 69 |
+
add a derek watkins tune to this is johnny cash AddToPlaylist
|
| 70 |
+
add our little corner of the world music from gilmore girls to my the funny thing about football is playlist AddToPlaylist
|
| 71 |
+
add the current track to my this is tchaikovsky playlist AddToPlaylist
|
| 72 |
+
put abe laboriel onto the escapada playlist AddToPlaylist
|
| 73 |
+
add abacab to beryl s party on fridays playlist AddToPlaylist
|
| 74 |
+
please add this track by paul mcguigan to the deep house playlist AddToPlaylist
|
| 75 |
+
can you add the current tune to my calm before the storm playlist AddToPlaylist
|
| 76 |
+
please add the image of you to my playlist crate diggers anonymous AddToPlaylist
|
| 77 |
+
add a track to jazzy dinner AddToPlaylist
|
| 78 |
+
add the album to the hipster soul playlist AddToPlaylist
|
| 79 |
+
add this tune to my sleepify playlist AddToPlaylist
|
| 80 |
+
add jack white to my playlist this is shakira AddToPlaylist
|
| 81 |
+
add tommy johnson to the metalsucks playlist AddToPlaylist
|
| 82 |
+
add the chris clark tune to my women of the blues playlist AddToPlaylist
|
| 83 |
+
add an artist to jukebox boogie rhythm & blues AddToPlaylist
|
| 84 |
+
add this artist to my electronic bliss playlist AddToPlaylist
|
| 85 |
+
i need to add to my infinite indie folk list the works of rahim shah AddToPlaylist
|
| 86 |
+
add martin barre to my punk unplugged playlist AddToPlaylist
|
| 87 |
+
add tierney sutton to my novedades viernes sudamérica playlist AddToPlaylist
|
| 88 |
+
add this tune to dorthy s 80 s party playlist AddToPlaylist
|
| 89 |
+
a very cellular song needs to be added to my masters of metal playlist AddToPlaylist
|
| 90 |
+
add toyan to my epic gaming playlist AddToPlaylist
|
| 91 |
+
add the song to the mac n cheese playlist AddToPlaylist
|
| 92 |
+
add this artist to my spotlight on country 2016 playlist AddToPlaylist
|
| 93 |
+
add a song to my playlist madden nfl 16 AddToPlaylist
|
| 94 |
+
add emilie autumn to my nação reggae playlist AddToPlaylist
|
| 95 |
+
add farhad darya songs in virales de siempre AddToPlaylist
|
| 96 |
+
add a song in my all out 60s AddToPlaylist
|
| 97 |
+
add we have a theme song to my house afterwork playlist AddToPlaylist
|
| 98 |
+
add the song to my we everywhere playlist AddToPlaylist
|
| 99 |
+
add roel van velzen to my party of the century playlist AddToPlaylist
|
| 100 |
+
add the artist to the political punks playlist AddToPlaylist
|
| 101 |
+
add the album to my club hits playlist AddToPlaylist
|
| 102 |
+
book a reservation for my babies and i BookRestaurant
|
| 103 |
+
book a reservation for a restaurant not far from ma BookRestaurant
|
| 104 |
+
i would like to book a restaurant in tanzania that is within walking distance for my mom and i BookRestaurant
|
| 105 |
+
book a reservation for an oyster bar BookRestaurant
|
| 106 |
+
book a reservation for 6 people for a creole tavern in montenegro BookRestaurant
|
| 107 |
+
i need a table in sacaton at a gluten free restaurant BookRestaurant
|
| 108 |
+
book sot for me and my grandfather nearby west reading BookRestaurant
|
| 109 |
+
book me and my nieces a reservation for a seafood restaurant in cle elum ne on ascension day BookRestaurant
|
| 110 |
+
book spot for two at city tavern BookRestaurant
|
| 111 |
+
i want to book a brasserie for 3 people in netherlands antilles BookRestaurant
|
| 112 |
+
book me a reservation for the best bistro BookRestaurant
|
| 113 |
+
book the best table in tanzania for 5 people at a diner BookRestaurant
|
| 114 |
+
i want to book a joint in a spa BookRestaurant
|
| 115 |
+
book a gastropub that serves turkish food for 4 people BookRestaurant
|
| 116 |
+
book spot for 7 at an indoor restaurant in mp now BookRestaurant
|
| 117 |
+
book a table in fiji for zero a m BookRestaurant
|
| 118 |
+
i want to book a restaurant for five people in sri lanka BookRestaurant
|
| 119 |
+
i need a table for 5 at a highly rated gastropub in concord mn BookRestaurant
|
| 120 |
+
i want to book oregon electric station in north city BookRestaurant
|
| 121 |
+
i need a table for 4 please confirm the reservation BookRestaurant
|
| 122 |
+
book a popular restaurant for 5 people BookRestaurant
|
| 123 |
+
i want to book a joint close by the naomi s hostel for a meal for 8 people BookRestaurant
|
| 124 |
+
i want to eat a delicatessen in thirteen hours that serves eastern european food BookRestaurant
|
| 125 |
+
book a reservation for nine people at a bakery in nunez BookRestaurant
|
| 126 |
+
book a reservation at tavern for noodle BookRestaurant
|
| 127 |
+
book spot for 4 in somalia BookRestaurant
|
| 128 |
+
i want to book albany pump station in buckholts washington now for a party of 9 BookRestaurant
|
| 129 |
+
i want to book a taverna in archer city for this spring for nine people BookRestaurant
|
| 130 |
+
i want to book a top-rated brasserie for 7 people BookRestaurant
|
| 131 |
+
book a reservation for 8 people in wardville kansas BookRestaurant
|
| 132 |
+
table for breadline cafe in minnesota next friday BookRestaurant
|
| 133 |
+
i want to book a restaurant in niger for seven people BookRestaurant
|
| 134 |
+
book spot for 9 BookRestaurant
|
| 135 |
+
book me a reservation for a pub in cormorant for a party of nine BookRestaurant
|
| 136 |
+
book spot for my nieces and i at a tea house BookRestaurant
|
| 137 |
+
i want to book a jewish restaurant in gambia BookRestaurant
|
| 138 |
+
book a reservation for the dome edinburgh close to brooklawn BookRestaurant
|
| 139 |
+
book spot for 1 at town of ramsgate in merit BookRestaurant
|
| 140 |
+
book a spot for me and kathrine at smithville BookRestaurant
|
| 141 |
+
i want to book a restaurant for my father in law and i in buckner a year from now BookRestaurant
|
| 142 |
+
book a restaurant reservation in 6 weeks BookRestaurant
|
| 143 |
+
book a reservation for a bar with a spa nearby id BookRestaurant
|
| 144 |
+
book spot for four at cliff house san francisco in martinique BookRestaurant
|
| 145 |
+
i need a table for 4 in saint helena at settha palace hotel BookRestaurant
|
| 146 |
+
i want to book a restaurant in frenier 12 years from now for 4 people BookRestaurant
|
| 147 |
+
book seven in neighboring moorpark BookRestaurant
|
| 148 |
+
i want to eat by five pm in ne for a six people BookRestaurant
|
| 149 |
+
i want to book tupelo honey cafe in new jersey for five people BookRestaurant
|
| 150 |
+
book a reservation for two at mickies dairy bar in weedsport BookRestaurant
|
| 151 |
+
book a table at a fried chicken restaurant BookRestaurant
|
| 152 |
+
book spot for mavis sheila and i in syria at elevenses BookRestaurant
|
| 153 |
+
can you book me a table at windows on the world in cokeville mi BookRestaurant
|
| 154 |
+
book me a table for 5 this year at cherwell boathouse BookRestaurant
|
| 155 |
+
book spot for six at 8 pm at a coffeehouse in ne that serves hog fry BookRestaurant
|
| 156 |
+
i want to book a restaurant close-by in inman for five people BookRestaurant
|
| 157 |
+
i need a table at eddie s attic in nevada for one BookRestaurant
|
| 158 |
+
book a reservation for an osteria restaurant for 4 people on november 4 BookRestaurant
|
| 159 |
+
i want to book a top-rated restaurant close by in la for me rebecca and loraine on 2/6/2020 BookRestaurant
|
| 160 |
+
book a reservation for 1 at a diner in wi BookRestaurant
|
| 161 |
+
book a reservation for 5 people at the top-rated brasserie restaurant BookRestaurant
|
| 162 |
+
book a table on 1/20/2023 for 5 people in mh BookRestaurant
|
| 163 |
+
book a table near pat s college BookRestaurant
|
| 164 |
+
i want to book a steakhouse in vimy ridge BookRestaurant
|
| 165 |
+
i want a table at james d conrey house in urbank california BookRestaurant
|
| 166 |
+
like to book a seat in monaco for the yankee doodle coffee shop BookRestaurant
|
| 167 |
+
i want to book a table in a restaurant in bouvet island BookRestaurant
|
| 168 |
+
i would like to book a restaurant for souvlaki cuisine in the state of ne BookRestaurant
|
| 169 |
+
book a reservation for 10 people at an oyster bar with a pool within the same area of cowansburg for 10 pm BookRestaurant
|
| 170 |
+
book a reservation for velma ana and rebecca for an american pizzeria at 5 am in ma BookRestaurant
|
| 171 |
+
book a spot for 4 in oklahoma at south street diner BookRestaurant
|
| 172 |
+
book a reservation for my mommy and i at a restaurant in central african republic BookRestaurant
|
| 173 |
+
book a reservation for five people for a tatar taverna in sargents BookRestaurant
|
| 174 |
+
phyllis ward and veronica need a table at a restaurant in 152 days BookRestaurant
|
| 175 |
+
book a reservation for ten at a restaurant in ohio BookRestaurant
|
| 176 |
+
i want to book a tea house that serves salade far from here at midnight in panama for two people BookRestaurant
|
| 177 |
+
i want to book a food truck for seven people in the republic of the congo BookRestaurant
|
| 178 |
+
i want to book a restaurant for ten people BookRestaurant
|
| 179 |
+
lets eat near oakfield 17 seconds from now at ted peters famous smoked fish BookRestaurant
|
| 180 |
+
book sot for 7 at a restaurant that serves european in stringtown on feb the 28th 2034 BookRestaurant
|
| 181 |
+
book a restaurant for six at an outdoor cafe in åland BookRestaurant
|
| 182 |
+
book a table for 12 am at our step mother s secondary residence within walking distance for one BookRestaurant
|
| 183 |
+
please book me a table at a pizzeria with a parking facility in ghana BookRestaurant
|
| 184 |
+
book spot for four at a indoor pub within the same area of louisiana in one minute BookRestaurant
|
| 185 |
+
please book me a restaurant BookRestaurant
|
| 186 |
+
book a reservation for me and my step brother at amt coffee in lakemoor BookRestaurant
|
| 187 |
+
i want to book a churrascaria in romeoville at ten a m for four people BookRestaurant
|
| 188 |
+
table for 5 a m at baker s keyboard lounge BookRestaurant
|
| 189 |
+
please book me a table at a bistro which serves lorna doone BookRestaurant
|
| 190 |
+
i want to book a restaurant for six people in wagstaff ak BookRestaurant
|
| 191 |
+
i would like to book a highly rated restaurant for a party of ten BookRestaurant
|
| 192 |
+
i want to book a sundanese gastropub nearby in texas for 3 people on 5/20/2025 BookRestaurant
|
| 193 |
+
book a party of five at seagoville for 06:42 BookRestaurant
|
| 194 |
+
book spot for 9 at thurmont BookRestaurant
|
| 195 |
+
i want to book a restaurant in sixteen seconds for 5 people in gold point montana BookRestaurant
|
| 196 |
+
i want to eat in ramona BookRestaurant
|
| 197 |
+
book a party at their campus within the same area for churrascaria BookRestaurant
|
| 198 |
+
book me a reservation for a party of 3 at a pub in northern mariana islands BookRestaurant
|
| 199 |
+
i want to book a bougatsa restaurant in next year nearby penn for three people BookRestaurant
|
| 200 |
+
book a reservation for nine people at the best pub nearby tangier in six months BookRestaurant
|
| 201 |
+
need a table somewhere in quarryville 14 hours from now BookRestaurant
|
| 202 |
+
what will the weather be faraway from here GetWeather
|
| 203 |
+
will there be fog in tahquamenon falls state park GetWeather
|
| 204 |
+
tell me the weather forecast for gibsland GetWeather
|
| 205 |
+
is there a storm now in nc GetWeather
|
| 206 |
+
what will the weather be in monument of lihula on december the 5th GetWeather
|
| 207 |
+
weather next year in dominica GetWeather
|
| 208 |
+
when will it be hot here GetWeather
|
| 209 |
+
what will the weather be in 1 day in kuwait GetWeather
|
| 210 |
+
what kind of weather will be in ukraine one minute from now GetWeather
|
| 211 |
+
humidity in olvey new hampshire GetWeather
|
| 212 |
+
what s the weather going to be in ut GetWeather
|
| 213 |
+
humidity not far from colorado city on november the 7th 2024 GetWeather
|
| 214 |
+
what is the forecast for wyoming at stanardsville during the storm GetWeather
|
| 215 |
+
what will the weather be in north carolina GetWeather
|
| 216 |
+
what is the forecast starting 11 weeks from now nearby the state of wisconsin GetWeather
|
| 217 |
+
will it be rainy at sunrise in ramey saudi arabia GetWeather
|
| 218 |
+
check the forecast for nebraska GetWeather
|
| 219 |
+
will it be warmer in north korea at nineteen o clock GetWeather
|
| 220 |
+
let me know the weather forecast around ten pm faraway from here in park narodowy brimstone hill fortress GetWeather
|
| 221 |
+
will it be stormy in the ouachita national forest GetWeather
|
| 222 |
+
tell me if it will be snowy 8 hours from now in mount airy vi GetWeather
|
| 223 |
+
what will the weather be nineteen hours from now neighboring saint kitts and nevis GetWeather
|
| 224 |
+
will there be hail on 11/12/2036 in singapore GetWeather
|
| 225 |
+
will it be colder here in 48 and a half weeks GetWeather
|
| 226 |
+
what s the weather going to be in knobel GetWeather
|
| 227 |
+
what will the weather be in dane on sep the fifth 2030 GetWeather
|
| 228 |
+
what will the weather be in ohio GetWeather
|
| 229 |
+
i need to know the weather for jan the 3rd in mexico when i go to port vue GetWeather
|
| 230 |
+
what is the forecast for ōtone prefectural natural park in 1 hour and within the same area GetWeather
|
| 231 |
+
what kind of weather is forecast around one pm near vatican GetWeather
|
| 232 |
+
will it be chilly in weldona GetWeather
|
| 233 |
+
will it be colder in virgin islands national park GetWeather
|
| 234 |
+
will it be hot at 13:19 in de funiak springs serbia and montenegro GetWeather
|
| 235 |
+
what is the weather going to be like in virginia on st patrick s day GetWeather
|
| 236 |
+
weather in kaneville maryland GetWeather
|
| 237 |
+
when is sunrise for ar GetWeather
|
| 238 |
+
what will the weather be not far from here on october the nineteenth 2026 GetWeather
|
| 239 |
+
what is the forecast for waurika in samoa GetWeather
|
| 240 |
+
tell me the weather forecast here GetWeather
|
| 241 |
+
what is the weather forecast nearby nicodemus GetWeather
|
| 242 |
+
what will the weather be in nov in brookneal GetWeather
|
| 243 |
+
will it be colder four months from now in suwanee ak GetWeather
|
| 244 |
+
what is the weather forecast for burundi GetWeather
|
| 245 |
+
what s the weather in benton city GetWeather
|
| 246 |
+
what will the weather be in ky on oct 16 2036 GetWeather
|
| 247 |
+
will the sun be out in 1 minute in searcy uganda GetWeather
|
| 248 |
+
what is the weather here GetWeather
|
| 249 |
+
what will the weather be one second from now in chad GetWeather
|
| 250 |
+
what kind of weather is forecast in ms now GetWeather
|
| 251 |
+
what is the forecast for la for freezing GetWeather
|
| 252 |
+
how cold will it be here in 1 second GetWeather
|
| 253 |
+
what is the forecast for hotter weather at southford falls state park GetWeather
|
| 254 |
+
what is the overcast forecast for the current position starting on jul 19 2030 GetWeather
|
| 255 |
+
what is the forecast for morocco at lake ozark on december seventeenth 2022 GetWeather
|
| 256 |
+
what will the humidity be in the current spot at 15:19:29 GetWeather
|
| 257 |
+
what is the forecast in nicodemus and nearby GetWeather
|
| 258 |
+
what is the weather going to be like in benton colorado in 2 and a half months GetWeather
|
| 259 |
+
what s the weather forecast for bothe-napa valley state park close by february 20 GetWeather
|
| 260 |
+
what is the forecast for beginning on nov 17 for franklinville GetWeather
|
| 261 |
+
what s the forecast for sep 26 in emerado saint pierre and miquelon GetWeather
|
| 262 |
+
will there be a blizzard next winter in visalia idaho GetWeather
|
| 263 |
+
will it be warmer in the district of columbia on may 25 2033 GetWeather
|
| 264 |
+
what will the weather be here on dec 7th GetWeather
|
| 265 |
+
what is the forecast for colder temps beginning on law day here GetWeather
|
| 266 |
+
what s the weather like in tyonek new jersey GetWeather
|
| 267 |
+
what is the forecast for here for blizzard conditions at five pm GetWeather
|
| 268 |
+
will there be a storm in gibsonia at 8 p m GetWeather
|
| 269 |
+
what is the cold condition of our current position for tomorrow GetWeather
|
| 270 |
+
what will the weather be in hialeah gardens on october the 24th GetWeather
|
| 271 |
+
will it be freezing today in delaware and lehigh national heritage corridor GetWeather
|
| 272 |
+
what is the forecast in admire in tx starting at seventeen GetWeather
|
| 273 |
+
what is the forecast in north carolina for edgemoor GetWeather
|
| 274 |
+
what is the forecast for costa rica GetWeather
|
| 275 |
+
need weather for parc national tolhuaca to see if it will be fog today GetWeather
|
| 276 |
+
weather in walden russia on 12/26/2018 GetWeather
|
| 277 |
+
what s the humidity here right now GetWeather
|
| 278 |
+
how s the weather at petit manan national wildlife refuge and nearby right now GetWeather
|
| 279 |
+
what is the forecast for lansford for temperate weather GetWeather
|
| 280 |
+
overcast on state holiday in pawling nature reserve and neighboring places GetWeather
|
| 281 |
+
i need the weather in wakarusa GetWeather
|
| 282 |
+
tell me the forecast for 6 am in tatra-nationalpark GetWeather
|
| 283 |
+
tell me the weather forecast for ut on thursday GetWeather
|
| 284 |
+
what is the forecast for turtle islands national park GetWeather
|
| 285 |
+
will it be hotter in pr at 23 o clock GetWeather
|
| 286 |
+
weather in two hours in uzbekistan GetWeather
|
| 287 |
+
what is the forecast for this afternoon for blizzard conditions in dieterich chad GetWeather
|
| 288 |
+
how s the weather here at two am GetWeather
|
| 289 |
+
will custer national forest be chillier at seven pm GetWeather
|
| 290 |
+
what is the forecast for starting at three a m in two buttes for warm weather GetWeather
|
| 291 |
+
what s the weather in fox chapel GetWeather
|
| 292 |
+
what is the rain forecast for one hour from now in south korea GetWeather
|
| 293 |
+
tell me the weather forecast here GetWeather
|
| 294 |
+
will there be a cloud in vi in 14 minutes GetWeather
|
| 295 |
+
how much colder will it be not far from utah around 3 am GetWeather
|
| 296 |
+
will it be chilly midday in cresbard afghanistan GetWeather
|
| 297 |
+
what will the weather be in sarygamyş sanctuary on august 21 2035 GetWeather
|
| 298 |
+
will it be rainy in tenino GetWeather
|
| 299 |
+
will it be hot in the netherlands on february 16th GetWeather
|
| 300 |
+
where is belgium located GetWeather
|
| 301 |
+
what will the weather be in milleville beach GetWeather
|
| 302 |
+
can you put on like a hurricane by paul landers PlayMusic
|
| 303 |
+
play the happy blues by ronnie wood PlayMusic
|
| 304 |
+
play the newest melody on last fm by eddie vinson PlayMusic
|
| 305 |
+
use groove shark to play music PlayMusic
|
| 306 |
+
please play something good from u-roy any song from 1975 on zvooq will do PlayMusic
|
| 307 |
+
play a symphony from 2013 PlayMusic
|
| 308 |
+
let me hear the good songs from james iha PlayMusic
|
| 309 |
+
play my inventive playlist PlayMusic
|
| 310 |
+
i want to play music from iheart PlayMusic
|
| 311 |
+
play subconscious lobotomy from jennifer paull PlayMusic
|
| 312 |
+
i want to hear a seventies sound track PlayMusic
|
| 313 |
+
play a john maher track PlayMusic
|
| 314 |
+
please play something from dihan slabbert that s on the top fifty PlayMusic
|
| 315 |
+
please play something catchy on youtube PlayMusic
|
| 316 |
+
play something from 2004 by imogen heap on spotify PlayMusic
|
| 317 |
+
play seventies music please PlayMusic
|
| 318 |
+
play music from the artist sean yseult and sort it through top-50 PlayMusic
|
| 319 |
+
play anything jd natasha did in the thirties PlayMusic
|
| 320 |
+
play music off netflix PlayMusic
|
| 321 |
+
nineties songs on zvooq PlayMusic
|
| 322 |
+
open itunes and play ben burnley ready to die PlayMusic
|
| 323 |
+
play an ep by zak starkey PlayMusic
|
| 324 |
+
play an album from nithyasree mahadevan PlayMusic
|
| 325 |
+
i want to listen to something on youtube PlayMusic
|
| 326 |
+
start playing something from iheart PlayMusic
|
| 327 |
+
play trance life on zvooq PlayMusic
|
| 328 |
+
find and play a concerto on zvooq from 1978 by ginger pooley PlayMusic
|
| 329 |
+
play all things must pass PlayMusic
|
| 330 |
+
i want to hear music from allen toussaint from the fifties PlayMusic
|
| 331 |
+
turn on last fm PlayMusic
|
| 332 |
+
play a song by rahsaan patterson PlayMusic
|
| 333 |
+
play femme fatale by bonobo PlayMusic
|
| 334 |
+
play some anneliese van der pol from the thirties on groove shark PlayMusic
|
| 335 |
+
i want to listen to an ep from 1998 PlayMusic
|
| 336 |
+
play paul mccartney PlayMusic
|
| 337 |
+
play jill sobule album PlayMusic
|
| 338 |
+
play chant s from 1973 PlayMusic
|
| 339 |
+
play something from 90s pop rock essentials PlayMusic
|
| 340 |
+
play have you met miss jones by nicole from google music PlayMusic
|
| 341 |
+
play chant by nigger kojak on itunes PlayMusic
|
| 342 |
+
play some sixties songs on google music PlayMusic
|
| 343 |
+
play a fifties album from dj yoda on last fm PlayMusic
|
| 344 |
+
please play my ecstatic playlist PlayMusic
|
| 345 |
+
open deezer and play curtain call: the hits by junichi okada PlayMusic
|
| 346 |
+
let s play jamie robertson s handover on vimeo PlayMusic
|
| 347 |
+
play a sixties soundtrack PlayMusic
|
| 348 |
+
play this is: miles davis on lastfm PlayMusic
|
| 349 |
+
live in l a joseph meyer please PlayMusic
|
| 350 |
+
play the top twenty hisham abbas on youtube PlayMusic
|
| 351 |
+
play some seventies filipp kirkorow PlayMusic
|
| 352 |
+
play the most popular puretone PlayMusic
|
| 353 |
+
play music from e-type PlayMusic
|
| 354 |
+
can you play a j pero on groove shark PlayMusic
|
| 355 |
+
play a bob burns song PlayMusic
|
| 356 |
+
i want to hear leroi moore on vimeo play the song chance of a lifetime PlayMusic
|
| 357 |
+
play some symphony music from david lindley PlayMusic
|
| 358 |
+
please play something on iheart from artist ari gold last album PlayMusic
|
| 359 |
+
i want to hear them from the artist murcof PlayMusic
|
| 360 |
+
play sound track music from the twenties PlayMusic
|
| 361 |
+
play dance with the devil by mr lordi PlayMusic
|
| 362 |
+
play music from 1996 PlayMusic
|
| 363 |
+
go to itunes and play dr lecter by david hodges PlayMusic
|
| 364 |
+
play s t r e e t d a d from hiromitsu agatsuma through pandora PlayMusic
|
| 365 |
+
play some movement from the fourties PlayMusic
|
| 366 |
+
please tune into chieko ochi s good music PlayMusic
|
| 367 |
+
play the greatest music from bryan maclean PlayMusic
|
| 368 |
+
play something on last fm PlayMusic
|
| 369 |
+
play music by joy nilo PlayMusic
|
| 370 |
+
play some gary lee conner PlayMusic
|
| 371 |
+
play music by brian chase PlayMusic
|
| 372 |
+
can you play top zvooq by fink PlayMusic
|
| 373 |
+
play the top-20 nawang khechog soundtrack PlayMusic
|
| 374 |
+
let s hear stuff from andrew hewitt PlayMusic
|
| 375 |
+
play a good ep from the eighties by peter murphy PlayMusic
|
| 376 |
+
play another passenger from louis nelson delisle PlayMusic
|
| 377 |
+
play the top music from the railway children off last fm PlayMusic
|
| 378 |
+
play the best becca PlayMusic
|
| 379 |
+
play something by duke ellington from the seventies PlayMusic
|
| 380 |
+
use the last fm service to play a mis niños de 30 PlayMusic
|
| 381 |
+
play my black sabbath: the dio years playlist PlayMusic
|
| 382 |
+
play an ep from mike harding PlayMusic
|
| 383 |
+
i want to hear anything from the rock symphonique genre please PlayMusic
|
| 384 |
+
please play a 1997 record PlayMusic
|
| 385 |
+
put what color is your sky by alana davis on the stereo PlayMusic
|
| 386 |
+
please play a movement from george formby jr PlayMusic
|
| 387 |
+
play some new les vandyke on slacker PlayMusic
|
| 388 |
+
please open zvooq PlayMusic
|
| 389 |
+
play progressive metal PlayMusic
|
| 390 |
+
i want to hear soundtrack music on youtube from helena iren michaelsen PlayMusic
|
| 391 |
+
play a song by ramesh narayan from 1960 PlayMusic
|
| 392 |
+
play some blues britânico PlayMusic
|
| 393 |
+
proceed with hitomi nabatame music from 2003 PlayMusic
|
| 394 |
+
play something on zvooq PlayMusic
|
| 395 |
+
play music from lynn & wade llp PlayMusic
|
| 396 |
+
let me hear chris knight music PlayMusic
|
| 397 |
+
let s hear good mohammad mamle on vimeo PlayMusic
|
| 398 |
+
please play a sound track from the fifties that s on iheart PlayMusic
|
| 399 |
+
play music from van-pires by dmitry malikov PlayMusic
|
| 400 |
+
play rich sex on iheart PlayMusic
|
| 401 |
+
play modern psychedelia PlayMusic
|
| 402 |
+
rate this album four out of 6 stars RateBook
|
| 403 |
+
give this textbook four stars RateBook
|
| 404 |
+
rate a twist in the tale zero out of 6 points RateBook
|
| 405 |
+
rate the children of niobe 1 out of 6 points RateBook
|
| 406 |
+
give zero stars to halo: ghosts of onyx RateBook
|
| 407 |
+
give this novel a score of 5 RateBook
|
| 408 |
+
give the current series four of 6 points RateBook
|
| 409 |
+
give 4 out of 6 points to the spirit ring chronicle RateBook
|
| 410 |
+
give two stars out of 6 to 36 children RateBook
|
| 411 |
+
rate the sneetches and other stories a three RateBook
|
| 412 |
+
rate the current series four stars RateBook
|
| 413 |
+
rate this book a 4 out of 6 RateBook
|
| 414 |
+
rate the current novel 5 of 6 stars RateBook
|
| 415 |
+
rate this book a 1 RateBook
|
| 416 |
+
give zero out of 6 to the current album RateBook
|
| 417 |
+
give this album 5 points RateBook
|
| 418 |
+
rate the mystery of the tolling bell series 4 stars RateBook
|
| 419 |
+
give the current novel two stars RateBook
|
| 420 |
+
give the current book 4 stars RateBook
|
| 421 |
+
give joe magarac and his usa citizen papers 5 points RateBook
|
| 422 |
+
rate the guilty 0 of 6 points RateBook
|
| 423 |
+
rate this textbook four out of 6 RateBook
|
| 424 |
+
give the catedral series four stars RateBook
|
| 425 |
+
reminiscences of the anti-japanese guerillas chronicle deserves zero points out of 6 for a rating RateBook
|
| 426 |
+
give small screen big picture a 0 out of 6 rating RateBook
|
| 427 |
+
gods and pawns should get a three RateBook
|
| 428 |
+
give zero stars to this textbook RateBook
|
| 429 |
+
rate the current novel a 4 out of 6 stars RateBook
|
| 430 |
+
rate the book the atmospheric railway 5 out of 6 RateBook
|
| 431 |
+
rate black boy 4 out of 6 RateBook
|
| 432 |
+
rate the chronicle current 1 star RateBook
|
| 433 |
+
mark this album a score of 5 RateBook
|
| 434 |
+
rate the current novel zero out of 6 RateBook
|
| 435 |
+
rate the current novel a 2 RateBook
|
| 436 |
+
give the giant devil dingo 4 points RateBook
|
| 437 |
+
rate this current novel two out of 6 RateBook
|
| 438 |
+
give monthly index of medical specialities a two out of 6 rating RateBook
|
| 439 |
+
rate this novel 2 out of 6 points RateBook
|
| 440 |
+
rate the current novel 3 stars RateBook
|
| 441 |
+
rate the current essay zero out of 6 stars RateBook
|
| 442 |
+
rate this current album 0 stars RateBook
|
| 443 |
+
give a brief stop on the road from auschwitz 1 out of 6 stars RateBook
|
| 444 |
+
rate this album 4 out of 6 stars RateBook
|
| 445 |
+
rate hate that cat 1 out of 6 stars RateBook
|
| 446 |
+
give my current book one of 6 stars RateBook
|
| 447 |
+
rate current novel one stars RateBook
|
| 448 |
+
give five out of 6 points to this album RateBook
|
| 449 |
+
give a rating of 2 to juneteenth RateBook
|
| 450 |
+
rate ruth five out of 6 points RateBook
|
| 451 |
+
rate the sea of trolls 1 stars out of 6 RateBook
|
| 452 |
+
give the zenith angle one out of 6 points RateBook
|
| 453 |
+
give zero stars to rhialto the marvellous RateBook
|
| 454 |
+
give the current book a zero of 6 RateBook
|
| 455 |
+
rate personal demons 0 out of 6 points RateBook
|
| 456 |
+
rate the current series a 4 RateBook
|
| 457 |
+
give one of 6 points to who will cry when you die RateBook
|
| 458 |
+
give zero out of 6 stars to this album RateBook
|
| 459 |
+
give this novel 2 stars RateBook
|
| 460 |
+
rate the 8-week cholesterol cure three out of 6 RateBook
|
| 461 |
+
rate this novel 3 out of 6 points RateBook
|
| 462 |
+
rate the lives of john lennon five points RateBook
|
| 463 |
+
give the american scene 2 of 6 stars RateBook
|
| 464 |
+
rate this textbook a one RateBook
|
| 465 |
+
give summer of the swans 1 points RateBook
|
| 466 |
+
give the current textbook a rating of five RateBook
|
| 467 |
+
give 4 points to the person and the common good RateBook
|
| 468 |
+
give a four rating to a world apart RateBook
|
| 469 |
+
rate this chronicle 0 points RateBook
|
| 470 |
+
give wilco: learning how to die a rating of four points RateBook
|
| 471 |
+
rate this saga two out of 6 RateBook
|
| 472 |
+
rate the gift: imagination and the erotic life of property five stars RateBook
|
| 473 |
+
rate neverwhere four out of 6 RateBook
|
| 474 |
+
rate in the company of cheerful ladies a zero out of 6 RateBook
|
| 475 |
+
give one start to the current book RateBook
|
| 476 |
+
give this chronicle a 2 rating RateBook
|
| 477 |
+
rate this essay a 1 RateBook
|
| 478 |
+
out of 6 give rivers of babylon a 1 RateBook
|
| 479 |
+
give 5 of 6 stars to expressive processing RateBook
|
| 480 |
+
rate the ghost house series a one RateBook
|
| 481 |
+
rate know ye not agincourt 2 out of 6 stars RateBook
|
| 482 |
+
i would rate theft: a love story four out of 6 stars RateBook
|
| 483 |
+
rate the further adventures of the joker four stars RateBook
|
| 484 |
+
give 0 rating to in the heart of the country RateBook
|
| 485 |
+
give 1 out of 6 rating to the current textbook RateBook
|
| 486 |
+
give the current chronicle five of 6 points RateBook
|
| 487 |
+
rate cotton comes to harlem a 2 RateBook
|
| 488 |
+
give this album one stars RateBook
|
| 489 |
+
rate the adventures of augie march one points RateBook
|
| 490 |
+
rate soul music a 0 RateBook
|
| 491 |
+
give hindu temples: what happened to them a 5 out of 6 stars RateBook
|
| 492 |
+
give this novel a 1 RateBook
|
| 493 |
+
rate the current textbook 1 out of 6 RateBook
|
| 494 |
+
give this textbook 0 out of 6 stars RateBook
|
| 495 |
+
give the crystal snare 5 stars RateBook
|
| 496 |
+
rate this saga two out of 6 RateBook
|
| 497 |
+
give wilco: learning how to die a rating of four points RateBook
|
| 498 |
+
rate this book 3 stars out of 6 RateBook
|
| 499 |
+
rate the three junes one out of 6 RateBook
|
| 500 |
+
give four stars to the broken window RateBook
|
| 501 |
+
rate the current series 4 points RateBook
|
| 502 |
+
wish to find the movie the heart beat SearchCreativeWork
|
| 503 |
+
please look up the tv show vanity SearchCreativeWork
|
| 504 |
+
get me the elvis christmas album tv show SearchCreativeWork
|
| 505 |
+
please find me the saga the deep six SearchCreativeWork
|
| 506 |
+
wish to see the photograph with the name live: right here SearchCreativeWork
|
| 507 |
+
looking for a novel called death march SearchCreativeWork
|
| 508 |
+
can you find me the work the curse of oak island SearchCreativeWork
|
| 509 |
+
please get me the sacred and profane love machine game SearchCreativeWork
|
| 510 |
+
need a creative work called hit by love SearchCreativeWork
|
| 511 |
+
search for the trailer for the office SearchCreativeWork
|
| 512 |
+
looking for a creative work called plant ecology SearchCreativeWork
|
| 513 |
+
find the television show to me SearchCreativeWork
|
| 514 |
+
can you please find me the saga chump change SearchCreativeWork
|
| 515 |
+
can you find me the ridiculous 6 book SearchCreativeWork
|
| 516 |
+
please fine me the tv series now we are married SearchCreativeWork
|
| 517 |
+
please look up the work bachelor pad SearchCreativeWork
|
| 518 |
+
please help me find the late night heartbroken blues television show SearchCreativeWork
|
| 519 |
+
please help me find bend it like beckham the musical SearchCreativeWork
|
| 520 |
+
please look up the tv series parables for wooden ears SearchCreativeWork
|
| 521 |
+
can you find me hey man SearchCreativeWork
|
| 522 |
+
please search for switched SearchCreativeWork
|
| 523 |
+
can you get me the controlled conversations tv series SearchCreativeWork
|
| 524 |
+
please look up the song the mad magician SearchCreativeWork
|
| 525 |
+
please search for the tv show the best of white lion SearchCreativeWork
|
| 526 |
+
please find me phineas redux SearchCreativeWork
|
| 527 |
+
get me the procession of ants tv show SearchCreativeWork
|
| 528 |
+
looking for a game called phinally phamous SearchCreativeWork
|
| 529 |
+
can you search the daring youth saga SearchCreativeWork
|
| 530 |
+
look for the book the girl who was plugged in SearchCreativeWork
|
| 531 |
+
find me a tv show called baby blue SearchCreativeWork
|
| 532 |
+
search for appalachian journey SearchCreativeWork
|
| 533 |
+
look for the television show meet the prince SearchCreativeWork
|
| 534 |
+
can you find me cracks the safe SearchCreativeWork
|
| 535 |
+
please help me search the hell money saga SearchCreativeWork
|
| 536 |
+
get me the secret south song SearchCreativeWork
|
| 537 |
+
can you find me the work titled music for millions SearchCreativeWork
|
| 538 |
+
please search for the painting titled this is the night SearchCreativeWork
|
| 539 |
+
could you locate the epic conditions picture SearchCreativeWork
|
| 540 |
+
get me the trailer of good morning sunshine SearchCreativeWork
|
| 541 |
+
please search the an introduction to karl marx painting SearchCreativeWork
|
| 542 |
+
can you find me the blue spring trailer SearchCreativeWork
|
| 543 |
+
could you find the tv series the approach SearchCreativeWork
|
| 544 |
+
search for the tv show a lawless street SearchCreativeWork
|
| 545 |
+
please look up three essays on the theory of sexuality show SearchCreativeWork
|
| 546 |
+
please get me the compulsive disclosure song SearchCreativeWork
|
| 547 |
+
can you look up the molecular oncology saga SearchCreativeWork
|
| 548 |
+
search for the sound of one hand clapping SearchCreativeWork
|
| 549 |
+
find the creative work deadly weapons SearchCreativeWork
|
| 550 |
+
need the creative work called the logic of scientific discovery SearchCreativeWork
|
| 551 |
+
can you find me the national anthem of the ancient britons television show SearchCreativeWork
|
| 552 |
+
can you please find me the harry hood saga SearchCreativeWork
|
| 553 |
+
can you find me the work bible translations into hawaii pidgin SearchCreativeWork
|
| 554 |
+
please look up and find me monty python live at the hollywood bowl SearchCreativeWork
|
| 555 |
+
please search for mary SearchCreativeWork
|
| 556 |
+
please search the game atla: all this life allows SearchCreativeWork
|
| 557 |
+
find me the novel with the name to lose my life … SearchCreativeWork
|
| 558 |
+
looking for a song with the title of live at the kings center SearchCreativeWork
|
| 559 |
+
can you find the american bison photograph SearchCreativeWork
|
| 560 |
+
can you find me the free for all show SearchCreativeWork
|
| 561 |
+
please find me the olympia 74 soundtrack SearchCreativeWork
|
| 562 |
+
look for the album slave to the grind SearchCreativeWork
|
| 563 |
+
please find me the projekt: the new face of goth SearchCreativeWork
|
| 564 |
+
can you get me the message from god saga SearchCreativeWork
|
| 565 |
+
find me the soundtrack a honeymoon adventure SearchCreativeWork
|
| 566 |
+
please get me the henderson kids saga SearchCreativeWork
|
| 567 |
+
find the movie splendor in the grass SearchCreativeWork
|
| 568 |
+
am looking for a book with the title free to play SearchCreativeWork
|
| 569 |
+
look for the tv series jersey boys SearchCreativeWork
|
| 570 |
+
can you search the book paris - when it sizzles SearchCreativeWork
|
| 571 |
+
looking for a painting with the title with you SearchCreativeWork
|
| 572 |
+
please find me the classified book SearchCreativeWork
|
| 573 |
+
look for the show v-the new mythology suite SearchCreativeWork
|
| 574 |
+
find the creative work face down SearchCreativeWork
|
| 575 |
+
find four songs SearchCreativeWork
|
| 576 |
+
find me the soundtrack live at the greek theatre SearchCreativeWork
|
| 577 |
+
please search for the television show episodi di the blacklist SearchCreativeWork
|
| 578 |
+
find a creative work called fire in the hole SearchCreativeWork
|
| 579 |
+
looking for the picture with the name of who made stevie crye SearchCreativeWork
|
| 580 |
+
look for the album wolves within SearchCreativeWork
|
| 581 |
+
find the album orphan girl at the cemetery SearchCreativeWork
|
| 582 |
+
please find me the journal of the british astronomical association movie SearchCreativeWork
|
| 583 |
+
find the tv show the daydreamer SearchCreativeWork
|
| 584 |
+
can you please get me the book dracula 5: the blood legacy SearchCreativeWork
|
| 585 |
+
please look up the novel live to dance SearchCreativeWork
|
| 586 |
+
please find me the video game titled 20 hours in america SearchCreativeWork
|
| 587 |
+
find the creative work the devil in stitches SearchCreativeWork
|
| 588 |
+
please look up the work prophets SearchCreativeWork
|
| 589 |
+
i m looking for welcome to the canteen SearchCreativeWork
|
| 590 |
+
please search for the journal of official statistics show SearchCreativeWork
|
| 591 |
+
please look up show-biz blues photograph SearchCreativeWork
|
| 592 |
+
please search the woodsmen of the west SearchCreativeWork
|
| 593 |
+
can you find the creative works associated with caryl & marilyn: real friends SearchCreativeWork
|
| 594 |
+
please get me the dead soul saga SearchCreativeWork
|
| 595 |
+
please search the live from leeds album SearchCreativeWork
|
| 596 |
+
please look up the johnny english - la rinascita painting SearchCreativeWork
|
| 597 |
+
can you find me the sword with no name trailer SearchCreativeWork
|
| 598 |
+
i wish to watch the fold trailer please search SearchCreativeWork
|
| 599 |
+
can you find me the almost human painting SearchCreativeWork
|
| 600 |
+
please find me the work serious awesomeness SearchCreativeWork
|
| 601 |
+
search for the game difficult loves SearchCreativeWork
|
| 602 |
+
is babar: king of the elephants playing SearchScreeningEvent
|
| 603 |
+
is the ghost playing SearchScreeningEvent
|
| 604 |
+
is bartok the magnificent playing at seven am SearchScreeningEvent
|
| 605 |
+
what s the movie schedule SearchScreeningEvent
|
| 606 |
+
i want to see jla adventures: trapped in time SearchScreeningEvent
|
| 607 |
+
when is the fox and the child playing in this cinema SearchScreeningEvent
|
| 608 |
+
show me the schedule for rat rod rockers SearchScreeningEvent
|
| 609 |
+
is any which way you can playing in 15 seconds SearchScreeningEvent
|
| 610 |
+
i want to see the portrait of a lady at the nearest cinema SearchScreeningEvent
|
| 611 |
+
where can i see the prime ministers: the pioneers SearchScreeningEvent
|
| 612 |
+
i need to find the movie theatre showing the crooked web closest to me SearchScreeningEvent
|
| 613 |
+
i want to see while the sun shines at the closest movie house SearchScreeningEvent
|
| 614 |
+
i want to see those kids from town when will it be showing SearchScreeningEvent
|
| 615 |
+
find the schedule for the comedian at santikos theatres SearchScreeningEvent
|
| 616 |
+
what are the movie schedules for my favorite theaters SearchScreeningEvent
|
| 617 |
+
what are the movies showing in the neighbourhood SearchScreeningEvent
|
| 618 |
+
is without witness playing twenty two hours from now SearchScreeningEvent
|
| 619 |
+
i need animated movies in the area for dinner time SearchScreeningEvent
|
| 620 |
+
i want to see i dream of jeanie in a movie theatre SearchScreeningEvent
|
| 621 |
+
can i see ellis island revisited in 1 minute SearchScreeningEvent
|
| 622 |
+
i want animated movies at mjr theatres SearchScreeningEvent
|
| 623 |
+
show me the schedule for the oblong box SearchScreeningEvent
|
| 624 |
+
i want to know if there are any movies playing in the area SearchScreeningEvent
|
| 625 |
+
is what a wonderful place showing at cinemark theatres SearchScreeningEvent
|
| 626 |
+
show the closest movie theatre that shows boycott SearchScreeningEvent
|
| 627 |
+
i want to see doa: dead or alive at loews cineplex entertainment SearchScreeningEvent
|
| 628 |
+
is the nightmare showing six hours from now at the nearest cinema SearchScreeningEvent
|
| 629 |
+
what is the nearest movie house with window connection playing at lunch SearchScreeningEvent
|
| 630 |
+
is patrick still lives showing at amc theaters SearchScreeningEvent
|
| 631 |
+
fine the movie schedules for the wanda group SearchScreeningEvent
|
| 632 |
+
give me the movie schedule nearby SearchScreeningEvent
|
| 633 |
+
find the schedule at the douglas theatre company SearchScreeningEvent
|
| 634 |
+
show me the movies at harkins theatres SearchScreeningEvent
|
| 635 |
+
what movies at star theatres SearchScreeningEvent
|
| 636 |
+
i want a movie schedule SearchScreeningEvent
|
| 637 |
+
can i get the movie times SearchScreeningEvent
|
| 638 |
+
i want to see medal for the general SearchScreeningEvent
|
| 639 |
+
can i get the times for movies in the neighbourhood SearchScreeningEvent
|
| 640 |
+
may i have the movie schedules for speakeasy theaters SearchScreeningEvent
|
| 641 |
+
find animated movies close by SearchScreeningEvent
|
| 642 |
+
is american primitive showing in santikos theatres SearchScreeningEvent
|
| 643 |
+
what are the movie schedules in the neighborhood SearchScreeningEvent
|
| 644 |
+
check the schedule for bow tie cinemas SearchScreeningEvent
|
| 645 |
+
check the timings for snowbound at the closest movie theatre SearchScreeningEvent
|
| 646 |
+
what are the movie times at caribbean cinemas SearchScreeningEvent
|
| 647 |
+
i need films in the neighborhood SearchScreeningEvent
|
| 648 |
+
show the movie schedules in the neighborhood SearchScreeningEvent
|
| 649 |
+
where s the nearest movie house showing foreign films SearchScreeningEvent
|
| 650 |
+
what movies are showing now at the closest cinema SearchScreeningEvent
|
| 651 |
+
is rumor has it playing SearchScreeningEvent
|
| 652 |
+
i need a list of speakeasy theaters movie times SearchScreeningEvent
|
| 653 |
+
when is the outer space connection playing at the nearest cinema SearchScreeningEvent
|
| 654 |
+
find the movie times at harkins theatres SearchScreeningEvent
|
| 655 |
+
find the films at century theatres SearchScreeningEvent
|
| 656 |
+
show the animated movies playing in the neighbourhood SearchScreeningEvent
|
| 657 |
+
i want to see fear chamber SearchScreeningEvent
|
| 658 |
+
show me southern theatres movie times SearchScreeningEvent
|
| 659 |
+
is the unnaturals showing at 13 SearchScreeningEvent
|
| 660 |
+
is no time to be young showing at amc theaters SearchScreeningEvent
|
| 661 |
+
find the movie schedules for regal entertainment group SearchScreeningEvent
|
| 662 |
+
i want to see shattered image SearchScreeningEvent
|
| 663 |
+
find the schedule at star theatres SearchScreeningEvent
|
| 664 |
+
will i think i do be playing at 7 pm SearchScreeningEvent
|
| 665 |
+
show me the schedule for arclight hollywood for only animated movies SearchScreeningEvent
|
| 666 |
+
find the schedule for great mail robbery SearchScreeningEvent
|
| 667 |
+
give me the movies in the neighborhood SearchScreeningEvent
|
| 668 |
+
what movies are playing close by SearchScreeningEvent
|
| 669 |
+
is the two gladiators playing SearchScreeningEvent
|
| 670 |
+
what s the movie schedule for great escape theatres SearchScreeningEvent
|
| 671 |
+
find the movie schedule close by SearchScreeningEvent
|
| 672 |
+
i want to see outcast SearchScreeningEvent
|
| 673 |
+
show me the schedule of movie the great gildersleeve near movie house SearchScreeningEvent
|
| 674 |
+
i need times for a yiddish world remembered at dipson theatres SearchScreeningEvent
|
| 675 |
+
find the movie schedules at goodrich quality theaters SearchScreeningEvent
|
| 676 |
+
show me the movie schedule in the neighbourhood SearchScreeningEvent
|
| 677 |
+
show me the movie times for films nearby SearchScreeningEvent
|
| 678 |
+
show the movie times for animated movies in the neighbourhood SearchScreeningEvent
|
| 679 |
+
is the eye – infinity playing at general cinema corporation SearchScreeningEvent
|
| 680 |
+
can you check the timings for super sweet 16: the movie SearchScreeningEvent
|
| 681 |
+
is we are northern lights playing in any movie theatre SearchScreeningEvent
|
| 682 |
+
what times will the young swordsman be showing at my cinema SearchScreeningEvent
|
| 683 |
+
show the sexy dance 2 times at the closest movie house SearchScreeningEvent
|
| 684 |
+
what are some close by animated movies showing SearchScreeningEvent
|
| 685 |
+
movie schedules close by for animated movies SearchScreeningEvent
|
| 686 |
+
what films are playing close by SearchScreeningEvent
|
| 687 |
+
find the movie schedule in the area SearchScreeningEvent
|
| 688 |
+
is cowboy canteen playing SearchScreeningEvent
|
| 689 |
+
is rare birds showing at the nearest movie theatre at noon SearchScreeningEvent
|
| 690 |
+
what are the movie times SearchScreeningEvent
|
| 691 |
+
where can i find the movie schedules SearchScreeningEvent
|
| 692 |
+
find the movie schedule for north american cinemas in eleven seconds SearchScreeningEvent
|
| 693 |
+
find the nearest cinema with movies playing SearchScreeningEvent
|
| 694 |
+
what are the movie times SearchScreeningEvent
|
| 695 |
+
what are the times for the gingerbread man SearchScreeningEvent
|
| 696 |
+
what films are playing close by SearchScreeningEvent
|
| 697 |
+
is any cinema playing the spirit of youth SearchScreeningEvent
|
| 698 |
+
what are the movie times for animated movies in the neighbourhood SearchScreeningEvent
|
| 699 |
+
what s the movie schedule at great escape theatres SearchScreeningEvent
|
| 700 |
+
show the times for cheers for miss bishop at dipson theatres SearchScreeningEvent
|
| 701 |
+
i want to see married to the enemy 2 at a cinema SearchScreeningEvent
|
TEXTOIR-main/data/snips/test.tsv
ADDED
|
@@ -0,0 +1,701 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
text label
|
| 2 |
+
add sabrina salerno to the grime instrumentals playlist AddToPlaylist
|
| 3 |
+
i want to bring four people to a place that s close to downtown that serves churrascaria cuisine BookRestaurant
|
| 4 |
+
put lindsey cardinale into my hillary clinton s women s history month playlist AddToPlaylist
|
| 5 |
+
will it snow in mt on june 13 2038 GetWeather
|
| 6 |
+
play signe anderson chant music that is newest PlayMusic
|
| 7 |
+
can you let me know what animated movies are playing close by SearchScreeningEvent
|
| 8 |
+
can you get me reservations for a highly rated restaurant in seychelles BookRestaurant
|
| 9 |
+
what s the weather here on 2/7/2021 GetWeather
|
| 10 |
+
find worldly goods starting now at a movie house SearchScreeningEvent
|
| 11 |
+
on june 27 2026 i d like to go to a delaware gastropub BookRestaurant
|
| 12 |
+
what movies are playing at mann theatres SearchScreeningEvent
|
| 13 |
+
find a movie called living in america SearchCreativeWork
|
| 14 |
+
find on dress parade SearchScreeningEvent
|
| 15 |
+
make a reservation at a bakery that has acquacotta in central african republic for five BookRestaurant
|
| 16 |
+
where can i purchase the tv show time for heroes SearchCreativeWork
|
| 17 |
+
will the wind die down at my current location by supper time GetWeather
|
| 18 |
+
please search the young warriors game SearchCreativeWork
|
| 19 |
+
make me a reservation in south carolina BookRestaurant
|
| 20 |
+
what movie theatre is showing if the huns came to melbourne SearchScreeningEvent
|
| 21 |
+
restaurant in bulgaria this week party for 9 numbers BookRestaurant
|
| 22 |
+
rate the current novel four of 6 stars RateBook
|
| 23 |
+
add the song don t drink the water to my playlist AddToPlaylist
|
| 24 |
+
add this tune by rod argent to propuesta alternativa playlist AddToPlaylist
|
| 25 |
+
show the movie times SearchScreeningEvent
|
| 26 |
+
will it snow in amy GetWeather
|
| 27 |
+
what will the weather be at nine am in hi GetWeather
|
| 28 |
+
in one hour find king of hearts SearchScreeningEvent
|
| 29 |
+
book a spot for ten at a top-rated caucasian restaurant not far from selmer BookRestaurant
|
| 30 |
+
play music from clark kent in the year 1987 PlayMusic
|
| 31 |
+
add to the rock games AddToPlaylist
|
| 32 |
+
add this artist to pop 2017 picks AddToPlaylist
|
| 33 |
+
i rate shadow of suribachi at five stars RateBook
|
| 34 |
+
play some sixties music PlayMusic
|
| 35 |
+
what film is playing nearby SearchScreeningEvent
|
| 36 |
+
add nothing fancy to meditate to sounds of nature playlist AddToPlaylist
|
| 37 |
+
get the video game of the chipmunk song SearchCreativeWork
|
| 38 |
+
rate lamy of santa fe 5 of 6 stars RateBook
|
| 39 |
+
show me movie schedules SearchScreeningEvent
|
| 40 |
+
what will the weather be in lago vista on october fourteenth 2022 GetWeather
|
| 41 |
+
weather next year in canada GetWeather
|
| 42 |
+
play a new symphony by perfecto de castro on lastfm PlayMusic
|
| 43 |
+
rate cuisines of the axis of evil and other irritating states one out of 6 RateBook
|
| 44 |
+
play arif music from the fourties PlayMusic
|
| 45 |
+
what is the weather of east portal ks GetWeather
|
| 46 |
+
play a melody from elmer bernstein PlayMusic
|
| 47 |
+
what is the weather going to be like in klondike gold rush national historical park on february the 28th 2034 GetWeather
|
| 48 |
+
play songs by sarah harding PlayMusic
|
| 49 |
+
rate the chronicle ten from tomorrow a 2 RateBook
|
| 50 |
+
book a table for 2 at a restaurant in follett BookRestaurant
|
| 51 |
+
book a brasserie in samoa for four people BookRestaurant
|
| 52 |
+
play the new noise theology e p SearchCreativeWork
|
| 53 |
+
find a reservation at a restaurant that serves gougère in laneville with a party of nine BookRestaurant
|
| 54 |
+
find the cold dead hand video game for me SearchCreativeWork
|
| 55 |
+
book a bakery for lebanese on january 11th 2032 BookRestaurant
|
| 56 |
+
rate the book an appeal from the new to the old whigs a 0 RateBook
|
| 57 |
+
book a table for 8 at a restaurant that serves far breton BookRestaurant
|
| 58 |
+
rate this current novel 1 stars RateBook
|
| 59 |
+
i rate secret water as a 4 RateBook
|
| 60 |
+
is unbeatable harold at century theatres SearchScreeningEvent
|
| 61 |
+
please find me asking alexandria discography SearchCreativeWork
|
| 62 |
+
what will the weather be in berville ak on feb 6 2017 GetWeather
|
| 63 |
+
is it warm in botna GetWeather
|
| 64 |
+
please add a track to my playlist called this is coti AddToPlaylist
|
| 65 |
+
find the via dolorosa: songs of redemption saga SearchCreativeWork
|
| 66 |
+
can you add confessions to my playlist called clásica AddToPlaylist
|
| 67 |
+
find the schedule for nearby animated movies SearchScreeningEvent
|
| 68 |
+
book a table today at a steakhouse for eight that serves sashimi BookRestaurant
|
| 69 |
+
play the last sound track by soko from around 1975 PlayMusic
|
| 70 |
+
add this song to blues roots AddToPlaylist
|
| 71 |
+
coon chicken inn restaurant for 1 am for me clarice and debbie BookRestaurant
|
| 72 |
+
add karusellen to jazz brasileiro AddToPlaylist
|
| 73 |
+
play some steve boyett chant music PlayMusic
|
| 74 |
+
give 1 out of 6 points to this novel RateBook
|
| 75 |
+
show the movie schedule of animated movies close by SearchScreeningEvent
|
| 76 |
+
please play the newest music by evil jared hasselhoff PlayMusic
|
| 77 |
+
add tune to my mellow bars playlist AddToPlaylist
|
| 78 |
+
put coming back to life onto winter music AddToPlaylist
|
| 79 |
+
rate this textbook a zero RateBook
|
| 80 |
+
i want to hear any tune from the twenties PlayMusic
|
| 81 |
+
play me a top-ten song by phil ochs on groove shark PlayMusic
|
| 82 |
+
find a video game called family dog SearchCreativeWork
|
| 83 |
+
rate awaiting strange gods: weird and lovecraftian fictions a 1 RateBook
|
| 84 |
+
add lisa m to my guitar hero live playlist AddToPlaylist
|
| 85 |
+
what is the weather forecast for my current place GetWeather
|
| 86 |
+
add strong to the metal monday playlist AddToPlaylist
|
| 87 |
+
where can i find conduct unbecoming SearchCreativeWork
|
| 88 |
+
will it be freezing in the current position GetWeather
|
| 89 |
+
add the da brat track to the soak up the sun playlist AddToPlaylist
|
| 90 |
+
add a track to the another glass playlist AddToPlaylist
|
| 91 |
+
find now and forever SearchScreeningEvent
|
| 92 |
+
the workout playlist needs more chris cross AddToPlaylist
|
| 93 |
+
play some jungle music on iheart PlayMusic
|
| 94 |
+
give 1 point to current textbook RateBook
|
| 95 |
+
put no mystery into my punk essentials playlist AddToPlaylist
|
| 96 |
+
i want to put look to you on the playlist named 80s classic hits AddToPlaylist
|
| 97 |
+
what time is beat the devil coming on at mann theatres SearchScreeningEvent
|
| 98 |
+
rate the current chronicle a zero RateBook
|
| 99 |
+
add garry shider album to my classical essentials AddToPlaylist
|
| 100 |
+
add the artist cho kyu hyun to funky jams AddToPlaylist
|
| 101 |
+
find the work i looked up SearchCreativeWork
|
| 102 |
+
play this is colour by panda bear PlayMusic
|
| 103 |
+
play the god that failed on vimeo PlayMusic
|
| 104 |
+
can i get the butterfly crush showings SearchScreeningEvent
|
| 105 |
+
add hanging on to my just dance by aftercluv playlist AddToPlaylist
|
| 106 |
+
show me when scandalous john is playing SearchScreeningEvent
|
| 107 |
+
a day no pigs would die deserves a best rating of 6 and a value of 4 RateBook
|
| 108 |
+
for my crossfit playlist add the soul sessions volume 2 AddToPlaylist
|
| 109 |
+
play some james cleveland PlayMusic
|
| 110 |
+
put this tune on dancepop AddToPlaylist
|
| 111 |
+
what time will paris by night aired SearchScreeningEvent
|
| 112 |
+
play music on spotify PlayMusic
|
| 113 |
+
i want a matt garrison tune in my fresh finds fire emoji playlist AddToPlaylist
|
| 114 |
+
will there be snowfall at six pm in leisure knoll california GetWeather
|
| 115 |
+
search for the television show me and my guitar SearchCreativeWork
|
| 116 |
+
tell me when it will be chilly in chicken united kingdom GetWeather
|
| 117 |
+
is it windy in telogia GetWeather
|
| 118 |
+
find a tv show called revenge of the nerds SearchCreativeWork
|
| 119 |
+
find the video game called turnin me on SearchCreativeWork
|
| 120 |
+
play the song i get ideas as performed by richard kruspe PlayMusic
|
| 121 |
+
add turk to the deep house playlist AddToPlaylist
|
| 122 |
+
find a reservation at fish express BookRestaurant
|
| 123 |
+
check the forecast for the current spot in the future oct 19 2037 GetWeather
|
| 124 |
+
how can i view the show corpus: a home movie about selena SearchCreativeWork
|
| 125 |
+
i would rate that old ace in the hole one stars and a best rating of 6 RateBook
|
| 126 |
+
add the rating for this current series a four out of 6 points RateBook
|
| 127 |
+
add justin mcroberts to this is chopin AddToPlaylist
|
| 128 |
+
book a bar that serves italian-american cuisine neighboring wilson av for one person BookRestaurant
|
| 129 |
+
is fog forecast close-by to pakistan GetWeather
|
| 130 |
+
book a restaurant for 3 people at eighteen oclock in saint vincent and the grenadines BookRestaurant
|
| 131 |
+
find the schedule for films at night at great escape theatres SearchScreeningEvent
|
| 132 |
+
is there snow in the district of columbia GetWeather
|
| 133 |
+
find a movie schedule SearchScreeningEvent
|
| 134 |
+
rate the beggar of volubilis 1 out of 6 RateBook
|
| 135 |
+
what is the forecast in heber GetWeather
|
| 136 |
+
please play an album from 1987 PlayMusic
|
| 137 |
+
show me the courts of chaos SearchCreativeWork
|
| 138 |
+
give the current book five stars out of 6 RateBook
|
| 139 |
+
when is fine totally fine playing SearchScreeningEvent
|
| 140 |
+
add a tune to clásicos del hip hop español AddToPlaylist
|
| 141 |
+
play jawad ahmad PlayMusic
|
| 142 |
+
what is the forecast for in 1 second at monte sereno for freezing temps GetWeather
|
| 143 |
+
i would like to eat fast food and have a party of two in kentucky BookRestaurant
|
| 144 |
+
play music from itunes for ric grech PlayMusic
|
| 145 |
+
add jennie jennie to my metal playlist AddToPlaylist
|
| 146 |
+
show the tv show the last samurai SearchCreativeWork
|
| 147 |
+
add rob tyner to betsy s we everywhere AddToPlaylist
|
| 148 |
+
show me the weather forecast for the city of spencer GetWeather
|
| 149 |
+
how is the weather in getzville minnesota GetWeather
|
| 150 |
+
what is dear old girl cooper foundation SearchScreeningEvent
|
| 151 |
+
i need a weather forecast for são tomé and príncipe on december 8th 2026 GetWeather
|
| 152 |
+
what animated movies are showing in the area SearchScreeningEvent
|
| 153 |
+
tell me the weather forecast for april 15 2019 here GetWeather
|
| 154 |
+
play the track asleep in the deep PlayMusic
|
| 155 |
+
play kurt cobain ballad tunes PlayMusic
|
| 156 |
+
can you add a track to my spain top 50 playlist AddToPlaylist
|
| 157 |
+
at meal time while i m here will it be hot GetWeather
|
| 158 |
+
can you find me the magic hour song SearchCreativeWork
|
| 159 |
+
add mary wells sings my guy to the electro sur playlist AddToPlaylist
|
| 160 |
+
play some kyle ward from the seventies PlayMusic
|
| 161 |
+
book a table around london borough of ealing that is highly rated in a gluten free bar BookRestaurant
|
| 162 |
+
when is crime and punishment u s a showing SearchScreeningEvent
|
| 163 |
+
will it snowstorm in long lake national wildlife refuge GetWeather
|
| 164 |
+
rate current essay a zero RateBook
|
| 165 |
+
book me a reservation at a bar around juliff for three people that serves bucatini for now BookRestaurant
|
| 166 |
+
book a highly rated place in in in seven years at a pub BookRestaurant
|
| 167 |
+
what time is southern theatres showing ukraine is not a brothel SearchScreeningEvent
|
| 168 |
+
add this album ny bill callahan to my mi casa es la tuya playlist oficial list AddToPlaylist
|
| 169 |
+
find a soundtrack called pax warrior SearchCreativeWork
|
| 170 |
+
book a table for ten for breakfast in minnesota BookRestaurant
|
| 171 |
+
what is the local movie schedule SearchScreeningEvent
|
| 172 |
+
book a restaurant for three on feb 18 BookRestaurant
|
| 173 |
+
i d like to know what movies are on the movie schedules nearby SearchScreeningEvent
|
| 174 |
+
please make me reservations somewhere for eight people in foley nv BookRestaurant
|
| 175 |
+
she me movie times at mann theatres SearchScreeningEvent
|
| 176 |
+
find the picture ultima vi: the false prophet SearchCreativeWork
|
| 177 |
+
play the best album from the seventies PlayMusic
|
| 178 |
+
add kylie minogue to my novedades viernes sudamérica playlist AddToPlaylist
|
| 179 |
+
is it freezing in colorado GetWeather
|
| 180 |
+
the last hawk gets a total of 3 out of 6 stars from me RateBook
|
| 181 |
+
will it be stormy in ma GetWeather
|
| 182 |
+
play pop 2017 picks PlayMusic
|
| 183 |
+
play some theme songs from 1974 PlayMusic
|
| 184 |
+
what will the weather be in la at 9 o clock GetWeather
|
| 185 |
+
can you add xanadu to latin alternative music AddToPlaylist
|
| 186 |
+
can you find me the naked city – justice with a bullet album SearchCreativeWork
|
| 187 |
+
please search the work eve-olution SearchCreativeWork
|
| 188 |
+
add i dreamt of a dragon to my futuros hits playlist AddToPlaylist
|
| 189 |
+
add this artist to the laugh list AddToPlaylist
|
| 190 |
+
i d like to eat at a restaurant around china with a party of 7 anywhere that serves ouzeri BookRestaurant
|
| 191 |
+
the sleep machine waterscapes playlist needs some kris chetan ramlu in it AddToPlaylist
|
| 192 |
+
rate the current chronicle five stars RateBook
|
| 193 |
+
rate this novel five of 6 RateBook
|
| 194 |
+
my rating for the eiffel tower and other mythologies is 0 out of 6 stars RateBook
|
| 195 |
+
i d like a table for midday at the unseen bean BookRestaurant
|
| 196 |
+
where can i see the movie across the line: the exodus of charlie wright SearchCreativeWork
|
| 197 |
+
turn on spotify to tiny tim ep PlayMusic
|
| 198 |
+
what are the movie schedules SearchScreeningEvent
|
| 199 |
+
i want a table for me and my kids in turkey at a neighboring restaurant BookRestaurant
|
| 200 |
+
play a top 5 song from wally bastian on google music PlayMusic
|
| 201 |
+
please search the ironbound picture SearchCreativeWork
|
| 202 |
+
put a gary clark song into the soul bpm playlist AddToPlaylist
|
| 203 |
+
will it be hot on orthodox good friday in michigan and close-by GetWeather
|
| 204 |
+
i want to see the television show called cuts both ways SearchCreativeWork
|
| 205 |
+
i d like to reserve a table at a pub that serves andouillettes within the same area in san marino BookRestaurant
|
| 206 |
+
what is the weather like in hurstville GetWeather
|
| 207 |
+
put this album on my wild country playlist AddToPlaylist
|
| 208 |
+
rate this textbook 2 out of 6 RateBook
|
| 209 |
+
search for the complots SearchCreativeWork
|
| 210 |
+
find the schedule for the band of honest men at the nearest movie theatre SearchScreeningEvent
|
| 211 |
+
what will the weather be in waverly city brazil on purple heart day GetWeather
|
| 212 |
+
what is the weather forecast in delaware GetWeather
|
| 213 |
+
play a top-50 tune from 1982 PlayMusic
|
| 214 |
+
play shinji miyazaki s music on netflix PlayMusic
|
| 215 |
+
can i get the game list of mew singles SearchCreativeWork
|
| 216 |
+
what s the forecast for belize around meal time GetWeather
|
| 217 |
+
add gary lachman track to jazz for loving couples playlist AddToPlaylist
|
| 218 |
+
find the path to power SearchCreativeWork
|
| 219 |
+
put artist paulinho da costa on my very nearly nashville playlist AddToPlaylist
|
| 220 |
+
i am looking for the work: nikki SearchCreativeWork
|
| 221 |
+
what s the weather in low moor GetWeather
|
| 222 |
+
play some nineties music PlayMusic
|
| 223 |
+
find a television show called swing high SearchCreativeWork
|
| 224 |
+
use netflix to play bizzy bone kiss me goodnight sergeant major PlayMusic
|
| 225 |
+
i d like to see movie schedules for kerasotes theatres SearchScreeningEvent
|
| 226 |
+
i want these are the days added to my spotlight spain 2016 playlist AddToPlaylist
|
| 227 |
+
play the greatest soundtrack by nhat son on last fm PlayMusic
|
| 228 |
+
what is the tv series in app store SearchCreativeWork
|
| 229 |
+
book the space aliens grill & bar in hord wy for feb the twenty-seventh BookRestaurant
|
| 230 |
+
find a saga called set sail the prairie SearchCreativeWork
|
| 231 |
+
can jovino santos neto s album get added to my confidence boost playlist AddToPlaylist
|
| 232 |
+
show animated movies in nearest movie theatre SearchScreeningEvent
|
| 233 |
+
find the game company of heroes SearchCreativeWork
|
| 234 |
+
where can i find paranormal activity 3 playing near me 1 hour from now SearchScreeningEvent
|
| 235 |
+
book a table this evening in saint vincent and the grenadines at a gastropub BookRestaurant
|
| 236 |
+
can i listen to dj vibe s top 10 PlayMusic
|
| 237 |
+
what films are at the nearest cinema SearchScreeningEvent
|
| 238 |
+
what is the weather like in north salt lake and afghanistan GetWeather
|
| 239 |
+
can you tell me the actors of the saga awards/ SearchCreativeWork
|
| 240 |
+
go to my all out 00s and add brian wilson AddToPlaylist
|
| 241 |
+
food truck in panama for five BookRestaurant
|
| 242 |
+
look up the movie schedule SearchScreeningEvent
|
| 243 |
+
book a table for chasity ruiz and mary at the fat duck in puerto rico BookRestaurant
|
| 244 |
+
find the gill deacon show SearchCreativeWork
|
| 245 |
+
find the movie schedule for films in the area SearchScreeningEvent
|
| 246 |
+
will i be able to watch camping-car at movie house at 6 pm SearchScreeningEvent
|
| 247 |
+
play how does it work by helen carter PlayMusic
|
| 248 |
+
what s the weather like in schenectady ma GetWeather
|
| 249 |
+
play some folk-rock music PlayMusic
|
| 250 |
+
give this current book zero out of 6 RateBook
|
| 251 |
+
rate this album 5 points RateBook
|
| 252 |
+
how is the weather right now at my current place GetWeather
|
| 253 |
+
play sixties music by giovanni battista guadagnini PlayMusic
|
| 254 |
+
tell me the weather forecast close by brown county state park for meal time GetWeather
|
| 255 |
+
play the last wellman braud album relaesd PlayMusic
|
| 256 |
+
play sugar baby by frank beard PlayMusic
|
| 257 |
+
find the schedule for the solitude of prime numbers at the nearest cinema in 1 hour SearchScreeningEvent
|
| 258 |
+
play the discografia de the pretty reckless saga SearchCreativeWork
|
| 259 |
+
i want to give the current textbook 0 out of 6 stars RateBook
|
| 260 |
+
show me movie times for animated movies playing three hours from now in the neighbourhood SearchScreeningEvent
|
| 261 |
+
find the game just dance greatest hits SearchCreativeWork
|
| 262 |
+
add this track to the sin ti playlist AddToPlaylist
|
| 263 |
+
show me the closest movie house playing an unfinished life at eight pm SearchScreeningEvent
|
| 264 |
+
what s it like in bahrain right now GetWeather
|
| 265 |
+
can you add blood on the face to the playlist called heartland country AddToPlaylist
|
| 266 |
+
on jan the twentieth what will it feel like in ct or the area not far from it GetWeather
|
| 267 |
+
i need a table in uruguay in 213 days when it s chillier GetWeather
|
| 268 |
+
add this track by horace andy to acoustic soul AddToPlaylist
|
| 269 |
+
plan an album by roni duani PlayMusic
|
| 270 |
+
add song to siesta AddToPlaylist
|
| 271 |
+
can you tell me the weather forecast for samoa GetWeather
|
| 272 |
+
play music on youtube PlayMusic
|
| 273 |
+
add spirit touches ground to my leche con chocolate list AddToPlaylist
|
| 274 |
+
i need a table for 1 minute from now at any pub for five around in that also serves fisn n chips BookRestaurant
|
| 275 |
+
book a spot at the food truck in ma BookRestaurant
|
| 276 |
+
21 weeks from now elinor crystal turner and nita want to eat german food at a bar in distant california BookRestaurant
|
| 277 |
+
find a tv show called ruthless SearchCreativeWork
|
| 278 |
+
find animated movies close by with a movie schedule SearchScreeningEvent
|
| 279 |
+
book a spot for 7 at an outdoor food court in denmark BookRestaurant
|
| 280 |
+
i would rate the persistence of vision 1 stars and a best rating of 6 RateBook
|
| 281 |
+
i need a reservation for february 27 2020 at a bar that serves paté BookRestaurant
|
| 282 |
+
find the ghost of tom joad SearchCreativeWork
|
| 283 |
+
i need a reservation for ten at a tavern in west virginia BookRestaurant
|
| 284 |
+
what time is children of divorce playing SearchScreeningEvent
|
| 285 |
+
will there be a blizzard in white house curacao GetWeather
|
| 286 |
+
play the top melody from artist maakii PlayMusic
|
| 287 |
+
are any animated movies playing at magic johnson theatres SearchScreeningEvent
|
| 288 |
+
give the current album a five RateBook
|
| 289 |
+
i want to add digital line to my playlist called infantil AddToPlaylist
|
| 290 |
+
the current essay gets four points RateBook
|
| 291 |
+
what will the weather be in grand coteau ut at six pm GetWeather
|
| 292 |
+
can you find me a trailer for phineas redux SearchCreativeWork
|
| 293 |
+
add the singer ivan roudyk to my fairy tales playlists AddToPlaylist
|
| 294 |
+
add song in my playlist dance workout AddToPlaylist
|
| 295 |
+
what movies can i see in the area SearchScreeningEvent
|
| 296 |
+
tell me what films are playing at plitt theatres SearchScreeningEvent
|
| 297 |
+
add in the heart of the world to the epic gaming playlist AddToPlaylist
|
| 298 |
+
find movie times SearchScreeningEvent
|
| 299 |
+
rate the book english grammar in use a five RateBook
|
| 300 |
+
play tujiko noriko s ten years and running PlayMusic
|
| 301 |
+
add the song to the soundscapes for gaming playlist AddToPlaylist
|
| 302 |
+
can you put a song by jessica mauboy on my playlist entitled a sudden rainstorm AddToPlaylist
|
| 303 |
+
show movie schedule SearchScreeningEvent
|
| 304 |
+
show me movie schedules for today SearchScreeningEvent
|
| 305 |
+
add cecil womack to my 50 great female voices playlist AddToPlaylist
|
| 306 |
+
will it be freezing here in 9 seconds GetWeather
|
| 307 |
+
forecast for serbia GetWeather
|
| 308 |
+
i want to give a mortal flower a two RateBook
|
| 309 |
+
where can i view the picture reaching horizons SearchCreativeWork
|
| 310 |
+
in hawaii will it be warmer at 3 am GetWeather
|
| 311 |
+
rate the little book four stars RateBook
|
| 312 |
+
rate the current textbook one of 6 stars RateBook
|
| 313 |
+
i want a table for five at a restaurant with latin food in arkansas for 1 hour from now BookRestaurant
|
| 314 |
+
find love will tear us apart a photograph SearchCreativeWork
|
| 315 |
+
please play me a popular track from 1984 PlayMusic
|
| 316 |
+
book a mediterranean restaurant for my sister and i BookRestaurant
|
| 317 |
+
how will the weather be different 5 years from now in waconia GetWeather
|
| 318 |
+
search for teenage mutant hero turtles: fall of the foot clan photograph SearchCreativeWork
|
| 319 |
+
play party anthems PlayMusic
|
| 320 |
+
what is the niceville forecast in fm GetWeather
|
| 321 |
+
find heat wave SearchScreeningEvent
|
| 322 |
+
which is the nearest movie house playing the diary of anne frank SearchScreeningEvent
|
| 323 |
+
can i have the movie schedule for imax corporation SearchScreeningEvent
|
| 324 |
+
book me a reservation for eight for the top-rated bakery eleven hours from now in mango BookRestaurant
|
| 325 |
+
play yung joc on slacker PlayMusic
|
| 326 |
+
show 50 words for snow creative picture SearchCreativeWork
|
| 327 |
+
play the electrochemical and solid state letters song SearchCreativeWork
|
| 328 |
+
table for 8 at a popular food court BookRestaurant
|
| 329 |
+
find me a table for 8 people at a nearby al restaurant one minute from now BookRestaurant
|
| 330 |
+
is there rain now in maine GetWeather
|
| 331 |
+
show me the photograph johnny cash: the complete columbia album collection SearchCreativeWork
|
| 332 |
+
find movie schedules SearchScreeningEvent
|
| 333 |
+
find movie schedules for united paramount theatres SearchScreeningEvent
|
| 334 |
+
what is the forecast for montana at dinner GetWeather
|
| 335 |
+
please add this track to my de camino playlist AddToPlaylist
|
| 336 |
+
book me a restaurant please BookRestaurant
|
| 337 |
+
find drumline: a new beat a picture SearchCreativeWork
|
| 338 |
+
play the red room sessions from chris cunningham PlayMusic
|
| 339 |
+
play the great adventures of slick rick game SearchCreativeWork
|
| 340 |
+
list movie schedules for movies playing close by SearchScreeningEvent
|
| 341 |
+
i am looking for the tv show called the flight of the lost balloon SearchCreativeWork
|
| 342 |
+
add david axelrod to my futuros hits list AddToPlaylist
|
| 343 |
+
play me sun ra songs from the fifties PlayMusic
|
| 344 |
+
add this track to my dinnertime acoustics playist AddToPlaylist
|
| 345 |
+
add tune to atmospheric black metal playlist AddToPlaylist
|
| 346 |
+
need to see mother joan of the angels in one second SearchScreeningEvent
|
| 347 |
+
give 2 out of 6 points to the following textbook RateBook
|
| 348 |
+
i would like to book a restaurant for two in 42 weeks from now in wagram BookRestaurant
|
| 349 |
+
play some last fm music like the 1992 ep from peaches PlayMusic
|
| 350 |
+
where is the closest cinema playing a drink in the passage SearchScreeningEvent
|
| 351 |
+
i m hoping you can find a photograph from live at the isle of wight 1970 SearchCreativeWork
|
| 352 |
+
what movies are around here SearchScreeningEvent
|
| 353 |
+
book a restaurant distant from downtown BookRestaurant
|
| 354 |
+
find doggy day school an album SearchCreativeWork
|
| 355 |
+
please play bitch please ii PlayMusic
|
| 356 |
+
find a video game called young SearchCreativeWork
|
| 357 |
+
is strauss is playing today at the cineplex odeon corporation SearchScreeningEvent
|
| 358 |
+
award this current novel 0 points RateBook
|
| 359 |
+
weather for this winter here GetWeather
|
| 360 |
+
what animated movies are playing at the closest movie theatre SearchScreeningEvent
|
| 361 |
+
rate this book four of 6 points RateBook
|
| 362 |
+
i want to go see the trouble with girls SearchScreeningEvent
|
| 363 |
+
cock-a-doodle-doo was awful i m giving it a 0 out of 6 RateBook
|
| 364 |
+
show me the schedule of films in the neighbourhood SearchScreeningEvent
|
| 365 |
+
book a table for nine people in svalbard and jan mayen BookRestaurant
|
| 366 |
+
i would give french poets and novelists a best rating of 6 and a value of three RateBook
|
| 367 |
+
what animated movies are playing nearby SearchScreeningEvent
|
| 368 |
+
will there be a cloud here at 06:50:20 GetWeather
|
| 369 |
+
i want to give the chronicle zombie bums from uranus 3 points RateBook
|
| 370 |
+
i d like to know when i can see the taking of flight 847: the uli derickson story at amco entertainment SearchScreeningEvent
|
| 371 |
+
play is this my world by leo arnaud PlayMusic
|
| 372 |
+
book a reservation for clinton street baking company & restaurant distant from downtown BookRestaurant
|
| 373 |
+
add nyoil to my this is prince playlist AddToPlaylist
|
| 374 |
+
show me the everybody wants you picture SearchCreativeWork
|
| 375 |
+
find a restaurant in fm that servec quiche BookRestaurant
|
| 376 |
+
i would give this current novel 2 stars with a best rating of 6 RateBook
|
| 377 |
+
i want to book a pastelaria cafe in alabama for me and my great grandfather BookRestaurant
|
| 378 |
+
is hail in the weather forecast for monterey bay national marine sanctuary GetWeather
|
| 379 |
+
add tune to sxsw fresh playlist AddToPlaylist
|
| 380 |
+
make a reservation in a popular sicilian bar place nearby for me only tomorrow BookRestaurant
|
| 381 |
+
i need a table for 9 BookRestaurant
|
| 382 |
+
add this artist to my post-grunge playlist AddToPlaylist
|
| 383 |
+
rate this album a 2 RateBook
|
| 384 |
+
what will the weather be like this tuesday in the area neighboring rendezvous mountain educational state forest GetWeather
|
| 385 |
+
i need a table in ottoville on feb 15th 2029 at gus stevens seafood restaurant & buccaneer lounge BookRestaurant
|
| 386 |
+
i need a table for five at childs restaurants in brunei BookRestaurant
|
| 387 |
+
how do i get the game still on it SearchCreativeWork
|
| 388 |
+
i would like to make a reservation for 2 for brunch BookRestaurant
|
| 389 |
+
need a table for party of five for december 26 2040 in the state of mt BookRestaurant
|
| 390 |
+
book me a restaurant for nine in statham BookRestaurant
|
| 391 |
+
i d like a table for ten in 2 minutes at french horn sonning eye BookRestaurant
|
| 392 |
+
find a movie house for 07:52 showing ganges: river to heaven SearchScreeningEvent
|
| 393 |
+
what is the michael moore is a big fat stupid white man video game SearchCreativeWork
|
| 394 |
+
i want to eat close to bowlegs seven years from now BookRestaurant
|
| 395 |
+
for my playlist chill add the name cater fe she AddToPlaylist
|
| 396 |
+
search for the halfway home tv show SearchCreativeWork
|
| 397 |
+
find movie times SearchScreeningEvent
|
| 398 |
+
play journey list PlayMusic
|
| 399 |
+
tell me what animated movies i can see at the closest movie theatre SearchScreeningEvent
|
| 400 |
+
i d like to see the trailer tony parker SearchCreativeWork
|
| 401 |
+
what time is holiday heart showing at the movie house SearchScreeningEvent
|
| 402 |
+
play the movie white christmas SearchCreativeWork
|
| 403 |
+
is it forecast to be warm in doi inthanon national park GetWeather
|
| 404 |
+
add this tune to cristina s endorphin rush playlist AddToPlaylist
|
| 405 |
+
play a song by nash the slash PlayMusic
|
| 406 |
+
i rate doom 3: worlds on fire a 1 of 6 RateBook
|
| 407 |
+
what time is phil ochs: there but for fortune playing at the movie house SearchScreeningEvent
|
| 408 |
+
add andreas johnson to my rock save the queen playlist AddToPlaylist
|
| 409 |
+
i d like to watch take this waltz SearchScreeningEvent
|
| 410 |
+
what are the mann theatres showtimes for secret sunshine SearchScreeningEvent
|
| 411 |
+
will there be snowfall in kitlope heritage conservancy GetWeather
|
| 412 |
+
play geddy lee music on spotify sort by top PlayMusic
|
| 413 |
+
rate in the eyes of mr fury zero of 6 RateBook
|
| 414 |
+
look up the tv series operace silver a SearchCreativeWork
|
| 415 |
+
i m looking for the tv series called unborn SearchCreativeWork
|
| 416 |
+
play the song memories are my only witness SearchCreativeWork
|
| 417 |
+
i give the phishing manual four stars out of 6 RateBook
|
| 418 |
+
play clásicos del hip hop español PlayMusic
|
| 419 |
+
add rupee to my ultra metal playlist AddToPlaylist
|
| 420 |
+
add shi xin hui to my piano chill playlist AddToPlaylist
|
| 421 |
+
what time is the clutching hand playing at amco entertainment SearchScreeningEvent
|
| 422 |
+
add circus to my post garage wave revival list AddToPlaylist
|
| 423 |
+
the chronicle charlie peace earns 4 stars from me RateBook
|
| 424 |
+
find conker: live and reloaded SearchCreativeWork
|
| 425 |
+
show me the nearest movie house showing the luckiest girl in the world SearchScreeningEvent
|
| 426 |
+
play track music from peter finestone on netflix sort by newest PlayMusic
|
| 427 |
+
play the song shine a light PlayMusic
|
| 428 |
+
book a popular restaurant of thai cuisine BookRestaurant
|
| 429 |
+
which animated movies are playing in the neighbourhood and when SearchScreeningEvent
|
| 430 |
+
i want to listen to the song only the greatest SearchCreativeWork
|
| 431 |
+
i d like to eat at the best restaurant BookRestaurant
|
| 432 |
+
is it going to be chilly in western sahara in 13 hours GetWeather
|
| 433 |
+
i want to book a restaurant for four around zapata BookRestaurant
|
| 434 |
+
rate if tomorrow comes 2 of 6 stars RateBook
|
| 435 |
+
the book history by contract is rated five stars in my opinion RateBook
|
| 436 |
+
i want to book a bar in bonaparte palau BookRestaurant
|
| 437 |
+
i m looking for dead at 21 the tv series SearchCreativeWork
|
| 438 |
+
can you make reservations at a tea house that serves fettucine BookRestaurant
|
| 439 |
+
put a track by lil mama into my guest list sneaky zebra playlist AddToPlaylist
|
| 440 |
+
put some frank ferrer into my edna st vincent millay playlist AddToPlaylist
|
| 441 |
+
what is the forecast for niger GetWeather
|
| 442 |
+
rate this novel a 3 RateBook
|
| 443 |
+
add this ruth crawford seeger song to my playlist called the soundtrack 007 AddToPlaylist
|
| 444 |
+
is it going to snow next year in wv GetWeather
|
| 445 |
+
is romulus and the sabines playing at the nearest cinema at ten SearchScreeningEvent
|
| 446 |
+
show me the new showings for animated movies in the neighborhood SearchScreeningEvent
|
| 447 |
+
play the video game the genesis machine SearchCreativeWork
|
| 448 |
+
i want to go to 88th st-boyd av or close by and book seats for 10 BookRestaurant
|
| 449 |
+
i need to add to the funk soul disco playlist my favorite artist AddToPlaylist
|
| 450 |
+
i want to book a cafe for 3 in fargo BookRestaurant
|
| 451 |
+
where can i watch tv series shopping spree SearchCreativeWork
|
| 452 |
+
play an andy silvester sound track from the thirties on spotify PlayMusic
|
| 453 |
+
i d like to eat at a popular brasserie in chile with a party of 5 BookRestaurant
|
| 454 |
+
what s the forecast for my current place at five pm GetWeather
|
| 455 |
+
give private games 3 stars out of 6 RateBook
|
| 456 |
+
in 17 minutes will it be foggy in songimvelo game reserve GetWeather
|
| 457 |
+
how hot will it be in wisconsin on august fourth GetWeather
|
| 458 |
+
i d like to put qriii onto songs to sing in the car AddToPlaylist
|
| 459 |
+
will it be chilly in oakdale ok GetWeather
|
| 460 |
+
add dwele to marguerite s eurovision 2016 playlist AddToPlaylist
|
| 461 |
+
what s the weather forecast for croatia on jul 25th GetWeather
|
| 462 |
+
find tv series titled a life in the death of joe meek SearchCreativeWork
|
| 463 |
+
open fadl shaker on spotify and play a melody starting with the newest PlayMusic
|
| 464 |
+
please add jency anthony to my playlist this is mozart AddToPlaylist
|
| 465 |
+
whats the weather in ga GetWeather
|
| 466 |
+
i rate the chronicle son of the tree with four of 6 points RateBook
|
| 467 |
+
add git to domingo indie AddToPlaylist
|
| 468 |
+
will there be cloud coverage in verdery myanmar GetWeather
|
| 469 |
+
rate maps for lost lovers 1 of 6 RateBook
|
| 470 |
+
will it snow in granbury GetWeather
|
| 471 |
+
play me a cinder block movement PlayMusic
|
| 472 |
+
find the tv series shaun the sheep SearchCreativeWork
|
| 473 |
+
i want to hear the jody williams sound track PlayMusic
|
| 474 |
+
what is the forecast for foggy conditions here in twenty one minutes GetWeather
|
| 475 |
+
book a table at grecian coffee house for 7 on apr 7th 2024 BookRestaurant
|
| 476 |
+
show creative photograph of icewind dale: heart of winter SearchCreativeWork
|
| 477 |
+
rate the manxman 5 out of 6 RateBook
|
| 478 |
+
add this song to my lo que suena new york playlist AddToPlaylist
|
| 479 |
+
find reproductions: songs of the human league SearchCreativeWork
|
| 480 |
+
play a 2001 sound track on deezer PlayMusic
|
| 481 |
+
weather for ma in the morning GetWeather
|
| 482 |
+
play a ballad by bob johnston PlayMusic
|
| 483 |
+
is there a snowstorm in russia GetWeather
|
| 484 |
+
will it be nice on aug the nineteenth in beda bulgaria GetWeather
|
| 485 |
+
i d like for you to put this artist to my evening commute playlist AddToPlaylist
|
| 486 |
+
play the caps lock trailer SearchCreativeWork
|
| 487 |
+
give me the movie schedules for warren theatres SearchScreeningEvent
|
| 488 |
+
i need current movie schedules SearchScreeningEvent
|
| 489 |
+
add even serpents shine to dorothea s indie hipster playlist AddToPlaylist
|
| 490 |
+
play ep by arjen anthony lucassen PlayMusic
|
| 491 |
+
give 4 points to this novel RateBook
|
| 492 |
+
add star light star bright to my jazz classics playlist AddToPlaylist
|
| 493 |
+
put nothing remains the same on my summer music playlist AddToPlaylist
|
| 494 |
+
weather for the night time in new mexico GetWeather
|
| 495 |
+
add pangaea to my gold edition playlist AddToPlaylist
|
| 496 |
+
find me a movie with the name oshin SearchCreativeWork
|
| 497 |
+
add ian stuart donaldson to canadian country AddToPlaylist
|
| 498 |
+
show me movie time for i am sorry at my movie house SearchScreeningEvent
|
| 499 |
+
please add ruud jolie to my playlist guest list polygon AddToPlaylist
|
| 500 |
+
add patti page album to i love my neo soul AddToPlaylist
|
| 501 |
+
add an album by twink to my classic country playlist AddToPlaylist
|
| 502 |
+
will it be a snowy day in dalcour GetWeather
|
| 503 |
+
rate this essay a two out of 6 RateBook
|
| 504 |
+
find the movie schedules for animated movies nearby at 09:44 am SearchScreeningEvent
|
| 505 |
+
add armand van helden to my black sabbath the ozzy years playlist AddToPlaylist
|
| 506 |
+
give this chronicle a 4 RateBook
|
| 507 |
+
i m looking for a churrascaria place with wifi that can serve a party of five BookRestaurant
|
| 508 |
+
what time is goodbye mothers playing SearchScreeningEvent
|
| 509 |
+
book the city tavern in holiday ks BookRestaurant
|
| 510 |
+
what movies are playing dickinson theatres SearchScreeningEvent
|
| 511 |
+
rate the key word and other mysteries 4 of 6 RateBook
|
| 512 |
+
i d like to watch may blossom SearchScreeningEvent
|
| 513 |
+
play some music on slacker PlayMusic
|
| 514 |
+
i want to rate the ingenuity gap 3 out of 6 RateBook
|
| 515 |
+
add song to my wild country playlist AddToPlaylist
|
| 516 |
+
what is the weather forecast for close-by burkina GetWeather
|
| 517 |
+
i want to watch supernatural: the unseen powers of animals SearchCreativeWork
|
| 518 |
+
listen to dragon ball: music collection SearchCreativeWork
|
| 519 |
+
add troy van leeuwen to my nu metal list AddToPlaylist
|
| 520 |
+
add born free to fresh r&b AddToPlaylist
|
| 521 |
+
book at table at forest av restaurant close-by for 2 1 second from now BookRestaurant
|
| 522 |
+
can you get me the trailer of the multiversity SearchCreativeWork
|
| 523 |
+
are there movies at malco theatres SearchScreeningEvent
|
| 524 |
+
rate the current chronicle series 3 out of 6 points RateBook
|
| 525 |
+
can i get the movie times SearchScreeningEvent
|
| 526 |
+
i want to add hind etin to my la mejor música dance 2017 playlist AddToPlaylist
|
| 527 |
+
play some latin on zvooq PlayMusic
|
| 528 |
+
what is the freezing forecast for british virgin islands GetWeather
|
| 529 |
+
pull up sweeney todd - il diabolico barbiere di fleet street SearchCreativeWork
|
| 530 |
+
put four rating on the raging quiet RateBook
|
| 531 |
+
show me the tv show limit of love: umizaru SearchCreativeWork
|
| 532 |
+
which movies are playing at the closest cinema SearchScreeningEvent
|
| 533 |
+
add this album by karl davydov to reyna s this is luis fonsi playlist AddToPlaylist
|
| 534 |
+
where can i see the television show falling away from me SearchCreativeWork
|
| 535 |
+
book me a table for 5 at a best rated restaurant in italy BookRestaurant
|
| 536 |
+
will there be a snowstorm in taberville GetWeather
|
| 537 |
+
add this song to this is no te va gustar playlist AddToPlaylist
|
| 538 |
+
can i get the movies showtimes for the closest movie house SearchScreeningEvent
|
| 539 |
+
do you have something like impossible is nothing by abderrahmane abdelli PlayMusic
|
| 540 |
+
what is the weather forecast for cistern GetWeather
|
| 541 |
+
please make reservations in yeager for seven am at a highly rated indian brasserie BookRestaurant
|
| 542 |
+
play me a nineties sound track PlayMusic
|
| 543 |
+
where can i find thor meets captain america SearchCreativeWork
|
| 544 |
+
i need to have pat alger s album placed onto the spotlight spain 2016 playlist AddToPlaylist
|
| 545 |
+
can i get the movie times for fox theatres SearchScreeningEvent
|
| 546 |
+
i d like to watch wish you were dead SearchScreeningEvent
|
| 547 |
+
i d like to watch apocalypse 2024 SearchScreeningEvent
|
| 548 |
+
show creativity of song a discord electric SearchCreativeWork
|
| 549 |
+
is love and other troubles playing SearchScreeningEvent
|
| 550 |
+
show me the current movie times SearchScreeningEvent
|
| 551 |
+
rate the lie tree five RateBook
|
| 552 |
+
i want to add another album to the wine & dine playlist AddToPlaylist
|
| 553 |
+
add another tune to my pumping iron playlist AddToPlaylist
|
| 554 |
+
play a track by mila islam from deezer PlayMusic
|
| 555 |
+
is it rainy season in manitou springs GetWeather
|
| 556 |
+
give 2 stars to the doom brigade RateBook
|
| 557 |
+
add this tune to my dinnertime acoustics list AddToPlaylist
|
| 558 |
+
what are the current movie schedules SearchScreeningEvent
|
| 559 |
+
what is the showtime for arsho SearchScreeningEvent
|
| 560 |
+
list movie times at harkins theatres SearchScreeningEvent
|
| 561 |
+
what movies are showing in the neighborhood SearchScreeningEvent
|
| 562 |
+
play my playlist tgif on itunes PlayMusic
|
| 563 |
+
what will the weather be like on january 2nd 2025 in ga GetWeather
|
| 564 |
+
what animated movies are playing in the neighbourhood and when SearchScreeningEvent
|
| 565 |
+
book a spot at savoy hotel and grill that is neighboring wisconsin BookRestaurant
|
| 566 |
+
can you find me the back when i knew it all album SearchCreativeWork
|
| 567 |
+
add george thorogood to el mejor rock en espa��ol AddToPlaylist
|
| 568 |
+
play the album how insensitive PlayMusic
|
| 569 |
+
i m looking for the pokémon: the movie 2000 tv show SearchCreativeWork
|
| 570 |
+
place this tune onto my dinner for 2 playlist AddToPlaylist
|
| 571 |
+
where can i see the trailer for love on the beat SearchCreativeWork
|
| 572 |
+
list movie times at megaplex theatres SearchScreeningEvent
|
| 573 |
+
will it be chillier at 06:05:48 in wagener réunion GetWeather
|
| 574 |
+
what is the weather in south bradenton GetWeather
|
| 575 |
+
get jump down painting SearchCreativeWork
|
| 576 |
+
please book a room in spaghetti warehouse for catalina delores and brandie mendoza at 12 am BookRestaurant
|
| 577 |
+
what is the nh forecast for mexican hat GetWeather
|
| 578 |
+
i need to book a top-rated steakhouse this autumn for 1 around azerbaijan BookRestaurant
|
| 579 |
+
will it be chillier at my current location in one minute GetWeather
|
| 580 |
+
show me heavenly sword SearchCreativeWork
|
| 581 |
+
what is the weather forecast for close-by gu 3 years from now GetWeather
|
| 582 |
+
will it be freezing on 4/20/2038 in american beach nc GetWeather
|
| 583 |
+
i need the wather for next week in the philippines GetWeather
|
| 584 |
+
add tune to my metal crash course playlist AddToPlaylist
|
| 585 |
+
i would like to book the best food court with persian food within the same area as ok for my ex husband and i BookRestaurant
|
| 586 |
+
i d like to see the picture the principle of hope SearchCreativeWork
|
| 587 |
+
rate this series 2 out of 6 RateBook
|
| 588 |
+
find a man needs a maid SearchCreativeWork
|
| 589 |
+
book a restaurant close by my daughters s work location with burrito three years from now BookRestaurant
|
| 590 |
+
add this tune to the refugee playlist AddToPlaylist
|
| 591 |
+
find time for movie times now SearchScreeningEvent
|
| 592 |
+
i would like to book a highly rated brasserie with souvlaki neighboring la next week BookRestaurant
|
| 593 |
+
find the panic in needle park SearchScreeningEvent
|
| 594 |
+
is it freezing on jun the 21st in apshawa south africa GetWeather
|
| 595 |
+
i need to take three people to eat BookRestaurant
|
| 596 |
+
play a 2006 chant PlayMusic
|
| 597 |
+
show me the schedule of the loves of letty in cinema closest SearchScreeningEvent
|
| 598 |
+
play the top 20 ep from the fifties by john bundrick PlayMusic
|
| 599 |
+
show creativity of photograph of my wonderful day SearchCreativeWork
|
| 600 |
+
book a table in the united states for 10 at the berghoff BookRestaurant
|
| 601 |
+
i d like to book a brasserie in virginia city ga BookRestaurant
|
| 602 |
+
will it be temperate in the same area in vi GetWeather
|
| 603 |
+
rate the current novel four out of 6 points RateBook
|
| 604 |
+
is it going to get chillier near hocking state forest GetWeather
|
| 605 |
+
for the current saga i rate 2 of 6 stars RateBook
|
| 606 |
+
i want to play the video game espn major league soccer SearchCreativeWork
|
| 607 |
+
rate the current book a three RateBook
|
| 608 |
+
rate this novel 0 of 6 stars RateBook
|
| 609 |
+
is it going to be chillier at 10 pm in texas GetWeather
|
| 610 |
+
what s the weather in timbo GetWeather
|
| 611 |
+
add the blurred crusade to crate diggers anonymous AddToPlaylist
|
| 612 |
+
tell me the weather forecast for sugarloaf provincial park ten weeks from now GetWeather
|
| 613 |
+
add a gackt camui track to the white noise playlist AddToPlaylist
|
| 614 |
+
rate canto for a gypsy two of 6 stars RateBook
|
| 615 |
+
i m looking for circus world SearchCreativeWork
|
| 616 |
+
this textbook gets a two RateBook
|
| 617 |
+
show me the movie times SearchScreeningEvent
|
| 618 |
+
add song to my underground hits AddToPlaylist
|
| 619 |
+
play the album journeyman SearchCreativeWork
|
| 620 |
+
find the family jams saga SearchCreativeWork
|
| 621 |
+
play rob mills album the golden archipelago PlayMusic
|
| 622 |
+
book a spot at a restaurant within walking distance of palau BookRestaurant
|
| 623 |
+
find me the balance and timing book SearchCreativeWork
|
| 624 |
+
find movie schedules for bow tie cinemas SearchScreeningEvent
|
| 625 |
+
add get happy to cherry s las canciones más lindas del mundo AddToPlaylist
|
| 626 |
+
rate this textbook a 1 RateBook
|
| 627 |
+
shw the picture twin husbands SearchCreativeWork
|
| 628 |
+
rate a taste of blackberries a three RateBook
|
| 629 |
+
play the 1991 soundtrack from ian mcdonald PlayMusic
|
| 630 |
+
find an album called just call me stupid SearchCreativeWork
|
| 631 |
+
play the insoc ep PlayMusic
|
| 632 |
+
i want to hear major harris s songs from the fifties PlayMusic
|
| 633 |
+
book a restaurant in donnelly BookRestaurant
|
| 634 |
+
rate the saint in trouble 1 of 6 RateBook
|
| 635 |
+
play punk rock music PlayMusic
|
| 636 |
+
look for a photograph of i wanna sex you up SearchCreativeWork
|
| 637 |
+
what is the humidity like in faraway on ak GetWeather
|
| 638 |
+
i d like to eat at an internet restaurant with a party of four BookRestaurant
|
| 639 |
+
when is just before nightfall playing SearchScreeningEvent
|
| 640 |
+
play moondog s chupacabra PlayMusic
|
| 641 |
+
add album to pop rising AddToPlaylist
|
| 642 |
+
rate this book three points RateBook
|
| 643 |
+
i am giving this current book album 0 out of 6 stars RateBook
|
| 644 |
+
play artist vlada divljan from something he did that is good PlayMusic
|
| 645 |
+
what will the humidity be in varnado georgia at one am GetWeather
|
| 646 |
+
add no prejudice to 90s indie AddToPlaylist
|
| 647 |
+
what are the movies movie times nearby SearchScreeningEvent
|
| 648 |
+
i want to hear some songs from the twenties PlayMusic
|
| 649 |
+
please make reservations for nine at 3 am BookRestaurant
|
| 650 |
+
can you pull up queen of the organ SearchCreativeWork
|
| 651 |
+
lets hear some dawood sarkhosh from their the power of your love album from groove shark PlayMusic
|
| 652 |
+
will it get overcast in la dolores GetWeather
|
| 653 |
+
book a spot for kelli jean and i at a pub at elevenses BookRestaurant
|
| 654 |
+
add this candi staton artist to my dancefloor hits AddToPlaylist
|
| 655 |
+
i want to add a song by jazz brasileiro AddToPlaylist
|
| 656 |
+
rate wielding a red sword 0 stars RateBook
|
| 657 |
+
book a taverna that serves bengali for six at five BookRestaurant
|
| 658 |
+
play the tv series heart of gold SearchCreativeWork
|
| 659 |
+
show crafty hands saga SearchCreativeWork
|
| 660 |
+
will it be hotter in wyomissing hills GetWeather
|
| 661 |
+
show weather while sunset in the same area in south carolina GetWeather
|
| 662 |
+
table for one somewhere in palco BookRestaurant
|
| 663 |
+
i would like to add something by kuk harrell to my hip hop 2017 new school playlist AddToPlaylist
|
| 664 |
+
add list of rush instrumentals to this is lady antebellum AddToPlaylist
|
| 665 |
+
where can i see a slice of life SearchScreeningEvent
|
| 666 |
+
the current textbook gets a 2 rating RateBook
|
| 667 |
+
add wing track to all a cappella AddToPlaylist
|
| 668 |
+
show me dangers of the canadian mounted SearchCreativeWork
|
| 669 |
+
please add this this tune to the playlist this is selena AddToPlaylist
|
| 670 |
+
what will the weather be in stelvio national park 1 hour and 1 minute from now GetWeather
|
| 671 |
+
can you put musiri subramania iyer s song onto the lo-fi love soundtrack AddToPlaylist
|
| 672 |
+
i want to add michelle heaton to this is chopin AddToPlaylist
|
| 673 |
+
show me the movie operetta for the theatre organ SearchCreativeWork
|
| 674 |
+
where s the nearest movie house playing no trains no planes SearchScreeningEvent
|
| 675 |
+
put a xiang xiang track onto women of the blues AddToPlaylist
|
| 676 |
+
can you add a track by david wolfenberger to janell s all funked up playlist AddToPlaylist
|
| 677 |
+
play the album vibrations by marion elise raven PlayMusic
|
| 678 |
+
add fabri fibra to evening acoustic AddToPlaylist
|
| 679 |
+
can you play any chant from the fourties PlayMusic
|
| 680 |
+
show the night riders SearchCreativeWork
|
| 681 |
+
i m looking for a movie called salvage mice SearchCreativeWork
|
| 682 |
+
find your personal touch SearchCreativeWork
|
| 683 |
+
add this tune to my weekend playlist AddToPlaylist
|
| 684 |
+
is it going to storm in black rock alaska GetWeather
|
| 685 |
+
show the movie schedules at united paramount theatres SearchScreeningEvent
|
| 686 |
+
i want to read the saga michael clayton SearchCreativeWork
|
| 687 |
+
book me a table for 3 at tkk fried chicken in sri lanka BookRestaurant
|
| 688 |
+
rate this book titled the improvisatore five stars RateBook
|
| 689 |
+
book a restaurant for one person at 7 am BookRestaurant
|
| 690 |
+
weather for beauregard il GetWeather
|
| 691 |
+
will there be alot of wind on march 13th in lost creek bahrain GetWeather
|
| 692 |
+
i d like a reservation at a place in iran for neva alice and maggie parker BookRestaurant
|
| 693 |
+
show me movie schedule for animated movie around here at eleven a m SearchScreeningEvent
|
| 694 |
+
i give this book dictionary of the english language a 4 rating RateBook
|
| 695 |
+
play some symphonic rock PlayMusic
|
| 696 |
+
add to my playlist all funked up this track AddToPlaylist
|
| 697 |
+
find a tv series called armageddon summer SearchCreativeWork
|
| 698 |
+
find politicsnation with al sharpton SearchCreativeWork
|
| 699 |
+
rate this album 0 points out of 6 RateBook
|
| 700 |
+
add leah kauffman to my uncharted 4 nathan drake playlist AddToPlaylist
|
| 701 |
+
rate this album two out of 6 RateBook
|
TEXTOIR-main/data/snips/train.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/data/stackoverflow/dev.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/data/stackoverflow/test.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/data/stackoverflow/train.tsv
ADDED
|
The diff for this file is too large to render.
See raw diff
|
|
|
TEXTOIR-main/figs/Intro.png
ADDED
|
TEXTOIR-main/open_intent_detection/README.md
ADDED
|
@@ -0,0 +1,260 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Open Intent Detection
|
| 2 |
+
|
| 3 |
+
This package provides the toolkit for open intent detection implemented with PyTorch.
|
| 4 |
+
|
| 5 |
+
## Introduction
|
| 6 |
+
|
| 7 |
+
Open intent detection aims to identify n-class known intents, and detect the one-class open intent, which is regarded as an open classification problem. The following is an example:
|
| 8 |
+
|
| 9 |
+
<img src="figs/open_intent_detection.png" width="360" height = "200">
|
| 10 |
+
|
| 11 |
+
We collect benchmark intent datasets, and reproduce related methods to our best. For the convenience of users, we provide flexible and extensible interfaces to add new methods. Welcome to contact us (zhang-hl20@mails.tsinghua.edu.cn) to add your methods!
|
| 12 |
+
|
| 13 |
+
## Basic Information
|
| 14 |
+
|
| 15 |
+
### Benchmark Datasets
|
| 16 |
+
| Datasets | Source |
|
| 17 |
+
| :---: | :---: |
|
| 18 |
+
| [BANKING](../data/banking) | [Paper](https://aclanthology.org/2020.nlp4convai-1.5/) |
|
| 19 |
+
| [OOS](../data/oos) | [Paper](https://aclanthology.org/D19-1131/) |
|
| 20 |
+
| [StackOverflow](../data/stackoverflow) | [Paper](https://aclanthology.org/W15-1509.pdf) |
|
| 21 |
+
|
| 22 |
+
### Integrated Models
|
| 23 |
+
|
| 24 |
+
| Model Name | Source | Published |
|
| 25 |
+
| :---: | :---: | :---: |
|
| 26 |
+
| [OpenMax*](./examples/run_OpenMax.sh) | [Paper](https://openaccess.thecvf.com/content_cvpr_2016/papers/Bendale_Towards_Open_Set_CVPR_2016_paper.pdf) [Code](https://github.com/abhijitbendale/OSDN) | CVPR 2016 |
|
| 27 |
+
| [MSP](./examples/run_MSP.sh) | [Paper](https://arxiv.org/pdf/1610.02136.pdf) [Code](https://github.com/hendrycks/error-detection) | ICLR 2017 |
|
| 28 |
+
| [DOC](./examples/run_DOC.sh) | [Paper](https://aclanthology.org/D17-1314.pdf) [Code](https://github.com/leishu02/EMNLP2017_DOC) | EMNLP 2017 |
|
| 29 |
+
| [DeepUnk](./examples/run_DeepUnk.sh) | [Paper](https://aclanthology.org/P19-1548.pdf) [Code](https://github.com/thuiar/DeepUnkID) | ACL 2019 |
|
| 30 |
+
| [SEG](./examples/run_SEG.sh) | [Paper](https://aclanthology.org/2020.acl-main.99) [Code](https://github.com/fanolabs/0shot-classification) | ACL 2020 |
|
| 31 |
+
| [ADB](./examples/run_ADB.sh) | [Paper](https://ojs.aaai.org/index.php/AAAI/article/view/17690) [Code](https://github.com/thuiar/Adaptive-Decision-Boundary) | AAAI 2021 |
|
| 32 |
+
| [(K+1)-way](./examples/run_K+1-way.sh) | [Paper](https://aclanthology.org/2021.acl-long.273) [Code](https://github.com/fanolabs/out-of-scope-intent-detection) | ACL 2021 |
|
| 33 |
+
| [MDF](./examples/run_MDF.sh) | [Paper](https://aclanthology.org/2021.acl-long.85.pdf) [Code](https://github.com/rivercold/BERT-unsupervised-OOD) | ACL 2021 |
|
| 34 |
+
| [ARPL*](./examples/run_ARPL.sh) | [Paper](https://ieeexplore.ieee.org/document/9521769) [Code](https://github.com/iCGY96/ARPL) | IEEE TPAMI 2022 |
|
| 35 |
+
| [KNNCL](./examples/run_KNNCL.sh) | [Paper](https://aclanthology.org/2022.acl-long.352/) [Code](https://github.com/zyh190507/KnnContrastiveForOOD) | ACL 2022 |
|
| 36 |
+
| [DA-ADB](./examples/run_DA-ADB.sh) | [Paper](https://ieeexplore.ieee.org/document/10097558) [Code](https://github.com/thuiar/TEXTOIR) | IEEE/ACM TASLP 2023 |
|
| 37 |
+
|
| 38 |
+
We welcome any issues and requests for model implementation and bug fix.
|
| 39 |
+
|
| 40 |
+
### Data Settings
|
| 41 |
+
|
| 42 |
+
Each dataset is split to training, development, and testing sets. We select partial intents as known (the labeled ratio can be changed) for training, and use all intents for testing. All the unknown intents are regarded as one open class (with token \<UNK> or \<OOS> in our codes). More detailed information can be seen in the [paper](https://ojs.aaai.org/index.php/AAAI/article/view/17690).
|
| 43 |
+
|
| 44 |
+
### Parameter Configurations
|
| 45 |
+
|
| 46 |
+
The basic parameters include parsing parameters about selected dataset, method, setting, etc. More details can be seen in [run.py](./run.py). For specific parameters of each method, we support add configuration files with different hyper-parameters in the [configs](./configs) directory.
|
| 47 |
+
|
| 48 |
+
An example can be seen in [ADB.py](./configs/ADB.py). Notice that the config file name is corresponding to the parsing parameter.
|
| 49 |
+
|
| 50 |
+
Normally, the input commands are as follows:
|
| 51 |
+
```
|
| 52 |
+
python run.py --dataset xxx --known_cls_ratio xxx --labeled_ratio xxx --config_file_name xxx
|
| 53 |
+
```
|
| 54 |
+
|
| 55 |
+
Notice that if you want to train the model, save the model, or save the testing results, you need to add related parameters (--train, --save_model, --save_results)
|
| 56 |
+
|
| 57 |
+
### Results
|
| 58 |
+
The detailed results can be seen in [results.md](results/results.md).
|
| 59 |
+
#### Overall Performance
|
| 60 |
+
|
| 61 |
+
* KIR means "Known Intent Ratio". "Open" and "Known" denote the macro f1-score over open class and known classes respectively.
|
| 62 |
+
* KNNCL (All) utilizes all 12 transformer layers for fine-tuning. KNNCL (last) utilizes only the last transformer layer for fine-tuning as the other baselines.
|
| 63 |
+
* We also test the performance of the DA-ADB method on the backbone of llama, corresponding to the methond DA-ADB_llama.
|
| 64 |
+
|
| 65 |
+
| | | BANKING | | OOS | | StackOverflow | |
|
| 66 |
+
|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
|
| 67 |
+
| KIR | Methods | Accuracy | F1-score | Accuracy |F1-score | Accuracy | F1-score |
|
| 68 |
+
|0.25|MSP|42.19|49.92|53.38|51.23|27.91|37.49|
|
| 69 |
+
|0.25|SEG|48.73|51.49|52.18|47.0|23.33|34.4|
|
| 70 |
+
|0.25|OpenMax|47.76|53.18|70.27|63.03|38.97|45.35|
|
| 71 |
+
|0.25|LOF|66.73|63.38|87.77|78.13|25.02|35.29|
|
| 72 |
+
|0.25|DOC|70.31|65.74|86.08|75.86|57.75|57.34|
|
| 73 |
+
|0.25|DeepUnk|70.68|65.57|87.18|77.32|40.03|45.64|
|
| 74 |
+
|0.25|(K+1)-way|76.66|68.44|85.36|74.43|49.75|50.82|
|
| 75 |
+
|0.25|MDF|77.17|46.85|76.56|50.34|74.1|53.95|
|
| 76 |
+
|0.25|ARPL|76.8|64.01|84.51|73.44|66.76|62.62|
|
| 77 |
+
|0.25|KNNCL (Last)|73.01|66.23|89.87|79.23|28.65|37.37|
|
| 78 |
+
|0.25|ADB|79.33|71.63|88.3|78.23|86.75|79.85|
|
| 79 |
+
|0.25|KNNCL (All)|**86.14**|**77.01**|**93.07**|82.45|85.04|79.06|
|
| 80 |
+
|0.25|DA-ADB|81.19|73.73|89.48|79.92|**89.07**|**82.83**|
|
| 81 |
+
|0.25|DA-ADB_llama|83.29|76.78|91.53|**84.54**|85.54|77.81|
|
| 82 |
+
|||||||||
|
| 83 |
+
|0.5|MSP|61.67|72.51|66.68|72.7|53.23|62.7|
|
| 84 |
+
|0.5|SEG|55.11|63.32|60.67|62.55|43.04|55.1|
|
| 85 |
+
|0.5|OpenMax|65.53|74.64|80.22|79.86|60.27|67.72|
|
| 86 |
+
|0.5|LOF|71.13|76.26|85.22|83.86|44.56|56.57|
|
| 87 |
+
|0.5|DOC|74.6|78.24|85.19|83.89|73.88|76.8|
|
| 88 |
+
|0.5|DeepUnk|71.01|75.41|84.95|83.35|55.46|64.78|
|
| 89 |
+
|0.5|(K+1)-way|74.65|77.83|82.19|81.56|62.57|68.81|
|
| 90 |
+
|0.5|MDF|60.18|64.1|60.72|61.61|56.46|61.47|
|
| 91 |
+
|0.5|ARPL|74.11|77.77|80.36|80.88|75.65|77.87|
|
| 92 |
+
|0.5|KNNCL (Last)|70.41|74.96|85.32|83.31|45.38|56.69|
|
| 93 |
+
|0.5|ADB|79.61|81.34|86.54|85.16|86.49|85.54|
|
| 94 |
+
|0.5|KNNCL (All)|**82.76**|81.31|88.66|83.99|86.69|86.15|
|
| 95 |
+
|0.5|DA-ADB|81.51|82.53|87.93|85.64|**87.78**|**86.91**|
|
| 96 |
+
|0.5|DA-ADB_llama|82.66|**83.67**|**90.29**|**88.86**|86.42|86.09|
|
| 97 |
+
|||||||||
|
| 98 |
+
|0.75|MSP|77.08|84.33|76.19|83.48|73.2|78.7|
|
| 99 |
+
|0.75|SEG|64.65|69.54|42.78|42.7|62.72|69.97|
|
| 100 |
+
|0.75|OpenMax|78.32|84.95|75.36|71.17|75.78|80.9|
|
| 101 |
+
|0.75|LOF|77.21|83.64|85.07|87.2|65.05|71.87|
|
| 102 |
+
|0.75|DOC|78.94|83.79|85.93|87.87|80.55|84.37|
|
| 103 |
+
|0.75|DeepUnk|74.73|81.12|84.61|86.53|71.56|77.63|
|
| 104 |
+
|0.75|(K+1)-way|79.18|84.71|83.51|86.66|74.0|78.95|
|
| 105 |
+
|0.75|MDF|64.59|74.76|63.98|72.02|62.98|71.12|
|
| 106 |
+
|0.75|ARPL|79.6|85.16|81.29|86.0|79.64|83.85|
|
| 107 |
+
|0.75|KNNCL (Last)|74.78|81.25|84.12|86.1|65.01|71.85|
|
| 108 |
+
|0.75|ADB|81.39|86.11|86.99|88.94|82.89|86.11|
|
| 109 |
+
|0.75|KNNCL (All)|77.50|82.30|85.07|85.11|83.15|86.73|
|
| 110 |
+
|0.75|DA-ADB|81.12|85.65|87.39|88.41|**83.56**|**86.84**|
|
| 111 |
+
|0.75|DA-ADB_llama|**82.19**|**86.52**|**89.23**|**90.48**|82.69|86.28|
|
| 112 |
+
|
| 113 |
+
#### Fine-grained Performance
|
| 114 |
+
|
| 115 |
+
| | | BANKING | | OOS | | StackOverflow | |
|
| 116 |
+
|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|:-----:|
|
| 117 |
+
| KIR | Methods | Open | Known | Open | Known | Open | Known |
|
| 118 |
+
|0.25|MSP|39.42|50.47|59.26|51.02|11.66|42.66|
|
| 119 |
+
|0.25|SEG|51.58|51.48|59.22|46.67|4.19|40.44|
|
| 120 |
+
|0.25|OpenMax|48.52|53.42|77.51|62.65|34.52|47.51|
|
| 121 |
+
|0.25|LOF|72.64|62.89|91.96|77.77|7.14|40.92|
|
| 122 |
+
|0.25|DOC|76.64|65.16|90.78|75.46|62.5|56.3|
|
| 123 |
+
|0.25|DeepUnk|76.98|64.97|91.61|76.95|36.87|47.39|
|
| 124 |
+
|0.25|(K+1)-way|82.66|67.7|90.27|74.02|52.23|50.54|
|
| 125 |
+
|0.25|MDF|85.7|44.8|84.89|49.43|83.03|48.13|
|
| 126 |
+
|0.25|ARPL|83.39|62.99|89.63|73.01|72.95|60.55|
|
| 127 |
+
|0.25|KNNCL (Last)|79.34|65.54|93.56|78.85|15.26|41.79|
|
| 128 |
+
|0.25|ADB|85.05|70.92|92.36|77.85|90.96|77.62|
|
| 129 |
+
|0.25|KNNCL (All)|**90.55**|**76.30**|**95.73**|82.10|89.59|76.96|
|
| 130 |
+
|0.25|DA-ADB|86.57|73.05|93.2|79.57|**92.65**|**80.87**|
|
| 131 |
+
|0.25|DA-ADB_llama|88.19|76.18|94.55|**84.27**|90.04|75.36|
|
| 132 |
+
|||||||||
|
| 133 |
+
|0.5|MSP|46.29|73.2|63.71|72.82|26.94|66.28|
|
| 134 |
+
|0.5|SEG|43.03|63.85|61.34|62.57|4.72|60.14|
|
| 135 |
+
|0.5|OpenMax|55.03|75.16|82.15|79.83|46.11|69.88|
|
| 136 |
+
|0.5|LOF|66.81|76.51|87.57|83.81|5.18|61.71|
|
| 137 |
+
|0.5|DOC|72.66|78.38|87.45|83.84|71.18|77.37|
|
| 138 |
+
|0.5|DeepUnk|67.8|75.61|87.48|83.3|35.8|67.67|
|
| 139 |
+
|0.5|(K+1)-way|72.58|77.97|84.25|81.52|51.69|70.53|
|
| 140 |
+
|0.5|MDF|57.72|64.27|62.31|61.6|50.19|62.6|
|
| 141 |
+
|0.5|ARPL|71.79|77.93|81.81|80.87|73.97|78.26|
|
| 142 |
+
|0.5|KNNCL (Last)|67.21|75.16|87.85|83.25|8.5|61.5|
|
| 143 |
+
|0.5|ADB|79.43|81.39|88.6|85.12|87.7|85.32|
|
| 144 |
+
|0.5|KNNCL (All)|**84.28**|81.23|91.17|83.89|87.59|86.01|
|
| 145 |
+
|0.5|DA-ADB|81.93|82.54|90.1|85.58|**88.86**|**86.71**|
|
| 146 |
+
|0.5|DA-ADB_llama|83.23|**83.68**|**92.04**|**88.82**|87.43|85.95|
|
| 147 |
+
|||||||||
|
| 148 |
+
|0.75|MSP|46.05|84.99|63.86|83.65|37.86|81.42|
|
| 149 |
+
|0.75|SEG|37.22|70.1|40.74|42.72|6.0|74.24|
|
| 150 |
+
|0.75|OpenMax|53.02|85.5|75.18|71.14|49.69|82.98|
|
| 151 |
+
|0.75|LOF|54.19|84.15|82.81|87.24|5.22|76.31|
|
| 152 |
+
|0.75|DOC|63.51|84.14|83.87|87.91|65.32|85.64|
|
| 153 |
+
|0.75|DeepUnk|50.57|81.65|82.67|86.57|34.38|80.51|
|
| 154 |
+
|0.75|(K+1)-way|59.89|85.14|79.59|86.72|45.22|81.2|
|
| 155 |
+
|0.75|MDF|33.43|75.47|51.33|72.21|28.52|73.96|
|
| 156 |
+
|0.75|ARPL|61.26|85.58|74.67|86.1|62.99|85.24|
|
| 157 |
+
|0.75|KNNCL (Last)|51.42|81.76|82.05|86.14|7.19|76.16|
|
| 158 |
+
|0.75|ADB|67.34|86.44|84.85|88.97|74.1|86.91|
|
| 159 |
+
|0.75|KNNCL (All)|67.01|82.56|84.31|85.11|72.81|**87.66**|
|
| 160 |
+
|0.75|DA-ADB|69.37|85.93|86.0|88.43|**74.55**|**87.66**|
|
| 161 |
+
|0.75|DA-ADB_llama|**70.94**|**86.78**|**87.93**|**90.51**|72.84|87.17|
|
| 162 |
+
|
| 163 |
+
## Tutorials
|
| 164 |
+
### a. How to add a new dataset?
|
| 165 |
+
1. Prepare Data
|
| 166 |
+
Create a new directory to store your dataset in the [data](../data) directory. You should provide the train.tsv, dev.tsv, and test.tsv, with the same formats as in the provided [datasets](../data/banking).
|
| 167 |
+
|
| 168 |
+
2. Dataloader Setting
|
| 169 |
+
Calculate the maximum sentence length (token unit) and count the labels of the dataset. Add them in the [file](./dataloaders/init.py) as follows:
|
| 170 |
+
```
|
| 171 |
+
max_seq_lengths = {
|
| 172 |
+
'new_dataset': max_length
|
| 173 |
+
}
|
| 174 |
+
benchmark_labels = {
|
| 175 |
+
'new_dataset': label_list
|
| 176 |
+
}
|
| 177 |
+
```
|
| 178 |
+
|
| 179 |
+
### b. How to add a new backbone?
|
| 180 |
+
|
| 181 |
+
1. Add a new backbone in the [backbones](./backbones) directory. For example, we provide some bert-based backbones in the [file](./backbones/bert.py). And we also provide llama-based backbones in the [file](./backbones/llama.py). You can add a new backbone in the same way.
|
| 182 |
+
|
| 183 |
+
2. Add the new backbone mapping in the [file](./backbones/__init__.py) as follows:
|
| 184 |
+
```
|
| 185 |
+
from .bert import new_backbone_class # from .llama import new_backbone_class
|
| 186 |
+
backbones_map = {
|
| 187 |
+
'new_backbone': new_backbone_class
|
| 188 |
+
}
|
| 189 |
+
```
|
| 190 |
+
Add a new loss in the [losses](./losses) directory is almost the same as adding a new backbone.
|
| 191 |
+
|
| 192 |
+
### c. How to add a new method?
|
| 193 |
+
|
| 194 |
+
1. Configuration Setting
|
| 195 |
+
Create a new file, named "method_name.py" in the [configs](./configs) directory, and set the hyper-parameters for the method (an example can be seen in [MSP.py](./configs/MSP.py)).
|
| 196 |
+
|
| 197 |
+
2. Dataloader Setting
|
| 198 |
+
Add the dataloader mapping if you use new backbone for the method. For example, the bert-based model corresponds to the bert dataloader as follows.
|
| 199 |
+
```
|
| 200 |
+
from .bert_loader import BERT_Loader
|
| 201 |
+
backbone_loader_map = {
|
| 202 |
+
'bert': BERT_Loader,
|
| 203 |
+
'bert_xxx': BERT_Loader,
|
| 204 |
+
}
|
| 205 |
+
```
|
| 206 |
+
|
| 207 |
+
The llama-based model corresponds to the llama dataloader as follows.
|
| 208 |
+
```
|
| 209 |
+
from .llama_loader import LLAMA_Loader
|
| 210 |
+
backbone_loader_map = {
|
| 211 |
+
'llama_disaware': LLAMA_Loader,
|
| 212 |
+
}
|
| 213 |
+
```
|
| 214 |
+
|
| 215 |
+
3. Add Methods (Take MSP as an example)
|
| 216 |
+
- Create a new directory, named "MSP" in the [methods](./methods) directory.
|
| 217 |
+
|
| 218 |
+
- Add the manager file for MSP. The file should include the method manager class (e.g., MSPManager), which includes training, evalutation, and testing modules for the method. An example can be seen in [manager.py](./methods/MSP/manager.py).
|
| 219 |
+
|
| 220 |
+
- Add the related method dependency in [__init__.py](./methods/__init__.py) as below:
|
| 221 |
+
```
|
| 222 |
+
from .MSP.manager import xxxManager
|
| 223 |
+
method_map = {
|
| 224 |
+
'MSP': MSPManager
|
| 225 |
+
}
|
| 226 |
+
```
|
| 227 |
+
(The key corresponds to the input parameter "method")
|
| 228 |
+
|
| 229 |
+
4. Run Examples
|
| 230 |
+
Add a script in the [examples](./examples) directory, and configure the parsing parameters in the [run.py](./run.py). You can also run the programs serially by setting the combination of different parameters. A running example is shown in [run_MSP.sh](./examples/run_MSP.sh).
|
| 231 |
+
|
| 232 |
+
## Citations
|
| 233 |
+
|
| 234 |
+
If this work is helpful, or you want to use the codes and results in this repo, please cite the following papers:
|
| 235 |
+
|
| 236 |
+
* [TEXTOIR: An Integrated and Visualized Platform for Text Open Intent Recognition](https://aclanthology.org/2021.acl-demo.20/)
|
| 237 |
+
* [Learning Discriminative Representations and Decision Boundaries for Open Intent Detection](https://ieeexplore.ieee.org/document/10097558)
|
| 238 |
+
|
| 239 |
+
```
|
| 240 |
+
@inproceedings{zhang-etal-2021-textoir,
|
| 241 |
+
title = "{TEXTOIR}: An Integrated and Visualized Platform for Text Open Intent Recognition",
|
| 242 |
+
author = "Zhang, Hanlei and Li, Xiaoteng and Xu, Hua and Zhang, Panpan and Zhao, Kang and Gao, Kai",
|
| 243 |
+
booktitle = "Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations",
|
| 244 |
+
pages = "167--174",
|
| 245 |
+
year = "2021",
|
| 246 |
+
url = "https://aclanthology.org/2021.acl-demo.20",
|
| 247 |
+
doi = "10.18653/v1/2021.acl-demo.20",
|
| 248 |
+
}
|
| 249 |
+
```
|
| 250 |
+
```
|
| 251 |
+
@article{DA-ADB,
|
| 252 |
+
title = {Learning Discriminative Representations and Decision Boundaries for Open Intent Detection},
|
| 253 |
+
author = {Zhang, Hanlei and Xu, Hua and Zhao, Shaojie and Zhou, Qianrui},
|
| 254 |
+
journal = {IEEE/ACM Transactions on Audio, Speech, and Language Processing},
|
| 255 |
+
volume = {31},
|
| 256 |
+
pages = {1611-1623},
|
| 257 |
+
year = {2023},
|
| 258 |
+
doi = {10.1109/TASLP.2023.3265203}
|
| 259 |
+
}
|
| 260 |
+
```
|
TEXTOIR-main/open_intent_detection/__init__.py
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
'''
|
| 2 |
+
The open intent detection module of the TEXTOIR toolkit @THUIAR.
|
| 3 |
+
|
| 4 |
+
If you use this code, please cite the following papers:
|
| 5 |
+
@inproceedings{zhang-etal-2021-textoir,
|
| 6 |
+
title = "{TEXTOIR}: An Integrated and Visualized Platform for Text Open Intent Recognition",
|
| 7 |
+
author = "Zhang, Hanlei and
|
| 8 |
+
Li, Xiaoteng and
|
| 9 |
+
Xu, Hua and
|
| 10 |
+
Zhang, Panpan and
|
| 11 |
+
Zhao, Kang and
|
| 12 |
+
Gao, Kai",
|
| 13 |
+
booktitle = "Proceedings of the 59th Annual Meeting of the Association for Computational Linguistics and the 11th International Joint Conference on Natural Language Processing: System Demonstrations",
|
| 14 |
+
year = "2021",
|
| 15 |
+
pages = "167--174",
|
| 16 |
+
}
|
| 17 |
+
@article{Zhang_Xu_Lin_2021,
|
| 18 |
+
title={Deep Open Intent Classification with Adaptive Decision Boundary},
|
| 19 |
+
volume={35},
|
| 20 |
+
number={16},
|
| 21 |
+
journal={Proceedings of the AAAI Conference on Artificial Intelligence},
|
| 22 |
+
author={Zhang, Hanlei and Xu, Hua and Lin, Ting-En},
|
| 23 |
+
year={2021},
|
| 24 |
+
month={May},
|
| 25 |
+
pages={14374-14382}
|
| 26 |
+
}
|
| 27 |
+
'''
|
| 28 |
+
|
TEXTOIR-main/open_intent_detection/backbones/__init__.py
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from .bert import BERT, BERT_Norm, BERT_K_1_way, BERT_SEG, BERT_Disaware, BERT_DOC, BERT_MDF, BERT_MDF_Pretrain, BERT_KNNCL
|
| 2 |
+
from .llama import LLAMA_lora_Disaware
|
| 3 |
+
|
| 4 |
+
backbones_map = {
|
| 5 |
+
'bert': BERT,
|
| 6 |
+
'bert_norm': BERT_Norm,
|
| 7 |
+
'bert_K+1-way': BERT_K_1_way,
|
| 8 |
+
'bert_seg': BERT_SEG,
|
| 9 |
+
'bert_disaware': BERT_Disaware,
|
| 10 |
+
'bert_doc': BERT_DOC,
|
| 11 |
+
'bert_mdf': BERT_MDF,
|
| 12 |
+
'bert_mdf_pretrain': BERT_MDF_Pretrain,
|
| 13 |
+
'bert_knncl': BERT_KNNCL,
|
| 14 |
+
'llama_disaware': LLAMA_lora_Disaware,
|
| 15 |
+
}
|
TEXTOIR-main/open_intent_detection/backbones/base.py
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
import logging
|
| 3 |
+
from transformers import AdamW, get_linear_schedule_with_warmup
|
| 4 |
+
from .utils import freeze_bert_parameters, freeze_bert_parameters_KCL
|
| 5 |
+
from .__init__ import backbones_map
|
| 6 |
+
|
| 7 |
+
class ModelManager:
|
| 8 |
+
|
| 9 |
+
def __init__(self, args, data, logger_name = 'Detection'):
|
| 10 |
+
|
| 11 |
+
self.logger = logging.getLogger(logger_name)
|
| 12 |
+
|
| 13 |
+
def set_optimizer(self, model, num_train_examples, train_batch_size, num_train_epochs, lr, warmup_proportion):
|
| 14 |
+
num_train_optimization_steps = int(num_train_examples / train_batch_size) * num_train_epochs
|
| 15 |
+
|
| 16 |
+
param_optimizer = list(model.named_parameters())
|
| 17 |
+
no_decay = ['bias', 'LayerNorm.bias', 'LayerNorm.weight']
|
| 18 |
+
optimizer_grouped_parameters = [
|
| 19 |
+
{'params': [p for n, p in param_optimizer if not any(nd in n for nd in no_decay)], 'weight_decay': 0.01},
|
| 20 |
+
{'params': [p for n, p in param_optimizer if any(nd in n for nd in no_decay)], 'weight_decay': 0.0}
|
| 21 |
+
]
|
| 22 |
+
|
| 23 |
+
optimizer = AdamW(optimizer_grouped_parameters, lr = lr, correct_bias=False)
|
| 24 |
+
num_warmup_steps= int(num_train_examples * num_train_epochs * warmup_proportion / train_batch_size)
|
| 25 |
+
|
| 26 |
+
scheduler = get_linear_schedule_with_warmup(optimizer,
|
| 27 |
+
num_warmup_steps=num_warmup_steps,
|
| 28 |
+
num_training_steps=num_train_optimization_steps)
|
| 29 |
+
|
| 30 |
+
return optimizer, scheduler
|
| 31 |
+
|
| 32 |
+
def set_model(self, args, pattern):
|
| 33 |
+
backbone = backbones_map[args.backbone]
|
| 34 |
+
args.device = self.device = torch.device('cuda:%d' % int(args.gpu_id) if torch.cuda.is_available() else 'cpu')
|
| 35 |
+
|
| 36 |
+
if pattern == 'bert' or pattern == 'llama':
|
| 37 |
+
if hasattr(backbone, 'from_pretrained'):
|
| 38 |
+
model = backbone.from_pretrained('bert-base-uncased', args = args)
|
| 39 |
+
else:
|
| 40 |
+
model = backbone(args)
|
| 41 |
+
|
| 42 |
+
if args.freeze_backbone_parameters:
|
| 43 |
+
self.logger.info('Freeze all parameters but the last layer for efficiency')
|
| 44 |
+
if args.method == 'KCL':
|
| 45 |
+
model = freeze_bert_parameters_KCL(model)
|
| 46 |
+
else:
|
| 47 |
+
model = freeze_bert_parameters(model)
|
| 48 |
+
model.to(self.device)
|
| 49 |
+
|
| 50 |
+
return model
|
| 51 |
+
|
TEXTOIR-main/open_intent_detection/backbones/bert.py
ADDED
|
@@ -0,0 +1,624 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
import math
|
| 3 |
+
import torch.nn.functional as F
|
| 4 |
+
import numpy as np
|
| 5 |
+
|
| 6 |
+
from torch import nn
|
| 7 |
+
from torch.nn import CrossEntropyLoss, MSELoss
|
| 8 |
+
from torch.nn.parameter import Parameter
|
| 9 |
+
from transformers import BertPreTrainedModel, BertModel, BertForMaskedLM, AutoConfig
|
| 10 |
+
from transformers.modeling_outputs import SequenceClassifierOutput
|
| 11 |
+
|
| 12 |
+
from .utils import ConvexSampler
|
| 13 |
+
|
| 14 |
+
activation_map = {'relu': nn.ReLU(), 'tanh': nn.Tanh()}
|
| 15 |
+
|
| 16 |
+
class BERT_DOC(BertPreTrainedModel):
|
| 17 |
+
def __init__(self, config, args):
|
| 18 |
+
super(BERT_DOC, self).__init__(config)
|
| 19 |
+
self.num_labels = args.num_labels
|
| 20 |
+
self.bert = BertModel(config)
|
| 21 |
+
self.dense = nn.Linear(config.hidden_size, config.hidden_size)
|
| 22 |
+
self.activation = activation_map[args.activation]
|
| 23 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 24 |
+
self.classifier = nn.Linear(config.hidden_size, args.num_labels)
|
| 25 |
+
self.init_weights()
|
| 26 |
+
|
| 27 |
+
def forward(self, input_ids=None, token_type_ids=None, attention_mask=None, labels=None,
|
| 28 |
+
feature_ext=False, mode=None, loss_fct=None, centroids = None):
|
| 29 |
+
outputs = self.bert(
|
| 30 |
+
input_ids, token_type_ids=token_type_ids, attention_mask=attention_mask, output_hidden_states=True)
|
| 31 |
+
encoded_layer_12 = outputs.hidden_states
|
| 32 |
+
|
| 33 |
+
pooled_output = self.dense(encoded_layer_12[-1].mean(dim=1))
|
| 34 |
+
pooled_output = self.dropout(pooled_output)
|
| 35 |
+
pooled_output = self.activation(pooled_output)
|
| 36 |
+
|
| 37 |
+
logits = self.classifier(pooled_output)
|
| 38 |
+
logits = self.dropout(logits)
|
| 39 |
+
sigmoid = nn.Sigmoid()
|
| 40 |
+
logits = sigmoid(logits)
|
| 41 |
+
|
| 42 |
+
if feature_ext:
|
| 43 |
+
return pooled_output
|
| 44 |
+
else:
|
| 45 |
+
if mode == 'train':
|
| 46 |
+
target = F.one_hot(labels, num_classes = self.num_labels)
|
| 47 |
+
loss_bce = loss_fct(logits, target.float())
|
| 48 |
+
return loss_bce
|
| 49 |
+
else:
|
| 50 |
+
return pooled_output, logits
|
| 51 |
+
|
| 52 |
+
class BERT(BertPreTrainedModel):
|
| 53 |
+
def __init__(self, config, args):
|
| 54 |
+
super(BERT, self).__init__(config)
|
| 55 |
+
self.num_labels = args.num_labels
|
| 56 |
+
self.bert = BertModel(config)
|
| 57 |
+
self.dense = nn.Linear(config.hidden_size, config.hidden_size)
|
| 58 |
+
self.activation = activation_map[args.activation]
|
| 59 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 60 |
+
self.classifier = nn.Linear(config.hidden_size, args.num_labels)
|
| 61 |
+
self.init_weights()
|
| 62 |
+
|
| 63 |
+
def forward(self, input_ids=None, token_type_ids=None, attention_mask=None, labels=None,
|
| 64 |
+
feature_ext=False, mode=None, loss_fct=None, centroids = None):
|
| 65 |
+
outputs = self.bert(
|
| 66 |
+
input_ids, token_type_ids=token_type_ids, attention_mask=attention_mask, output_hidden_states=True)
|
| 67 |
+
encoded_layer_12 = outputs.hidden_states
|
| 68 |
+
|
| 69 |
+
pooled_output = self.dense(encoded_layer_12[-1].mean(dim=1))
|
| 70 |
+
pooled_output = self.activation(pooled_output)
|
| 71 |
+
pooled_output = self.dropout(pooled_output)
|
| 72 |
+
|
| 73 |
+
logits = self.classifier(pooled_output)
|
| 74 |
+
|
| 75 |
+
if feature_ext:
|
| 76 |
+
return pooled_output
|
| 77 |
+
else:
|
| 78 |
+
if mode == 'train':
|
| 79 |
+
loss_ce = loss_fct(logits, labels)
|
| 80 |
+
return loss_ce
|
| 81 |
+
else:
|
| 82 |
+
return pooled_output, logits
|
| 83 |
+
|
| 84 |
+
class BERT_Norm(BertPreTrainedModel):
|
| 85 |
+
def __init__(self, config, args):
|
| 86 |
+
|
| 87 |
+
super(BERT_Norm, self).__init__(config)
|
| 88 |
+
self.num_labels = args.num_labels
|
| 89 |
+
self.bert = BertModel(config)
|
| 90 |
+
self.dense = nn.Linear(config.hidden_size, config.hidden_size)
|
| 91 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 92 |
+
self.init_weights()
|
| 93 |
+
self.weight = Parameter(torch.FloatTensor(args.num_labels, args.feat_dim).to(args.device))
|
| 94 |
+
nn.init.xavier_uniform_(self.weight)
|
| 95 |
+
|
| 96 |
+
def forward(self, input_ids=None, token_type_ids=None, attention_mask=None, labels=None,
|
| 97 |
+
feature_ext=False, mode=None, loss_fct=None, device = None, head = None):
|
| 98 |
+
outputs = self.bert(
|
| 99 |
+
input_ids, token_type_ids=token_type_ids, attention_mask=attention_mask, output_hidden_states=True)
|
| 100 |
+
encoded_layer_12 = outputs.hidden_states
|
| 101 |
+
pooled_output = encoded_layer_12[-1].mean(dim=1)
|
| 102 |
+
pooled_output = self.dropout(pooled_output)
|
| 103 |
+
pooled_output = F.normalize(pooled_output)
|
| 104 |
+
|
| 105 |
+
logits = F.linear(pooled_output, F.normalize(self.weight))
|
| 106 |
+
logits = F.softmax(logits, dim = 1)
|
| 107 |
+
|
| 108 |
+
if feature_ext:
|
| 109 |
+
return pooled_output
|
| 110 |
+
else:
|
| 111 |
+
if mode == 'train':
|
| 112 |
+
loss = loss_fct(logits, labels)
|
| 113 |
+
return loss
|
| 114 |
+
else:
|
| 115 |
+
return pooled_output, logits
|
| 116 |
+
|
| 117 |
+
class BERT_K_1_way(BertPreTrainedModel):
|
| 118 |
+
def __init__(self, config, args):
|
| 119 |
+
super(BERT_K_1_way, self).__init__(config)
|
| 120 |
+
self.num_labels = args.num_labels
|
| 121 |
+
self.bert = BertModel(config)
|
| 122 |
+
self.dense = nn.Linear(config.hidden_size, config.hidden_size)
|
| 123 |
+
self.activation = activation_map[args.activation]
|
| 124 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 125 |
+
self.sampler = ConvexSampler(args)
|
| 126 |
+
self.classifier = nn.Linear(config.hidden_size, self.num_labels + 1)
|
| 127 |
+
self.t = args.temp
|
| 128 |
+
self.init_weights()
|
| 129 |
+
|
| 130 |
+
def forward(self, input_ids = None, token_type_ids = None, attention_mask=None , labels = None,
|
| 131 |
+
feature_ext = False, mode = None, loss_fct = None):
|
| 132 |
+
outputs = self.bert(
|
| 133 |
+
input_ids, token_type_ids=token_type_ids, attention_mask=attention_mask, output_hidden_states=True)
|
| 134 |
+
encoded_layer_12 = outputs.hidden_states
|
| 135 |
+
pooled_output = self.dense(encoded_layer_12[-1].mean(dim=1))
|
| 136 |
+
|
| 137 |
+
if mode is not 'test':
|
| 138 |
+
pooled_output, labels = self.sampler(pooled_output, labels, mode=mode)
|
| 139 |
+
|
| 140 |
+
pooled_output = self.activation(pooled_output)
|
| 141 |
+
pooled_output = self.dropout(pooled_output)
|
| 142 |
+
logits = self.classifier(pooled_output)
|
| 143 |
+
|
| 144 |
+
if feature_ext:
|
| 145 |
+
return pooled_output
|
| 146 |
+
else:
|
| 147 |
+
if mode == 'train':
|
| 148 |
+
loss = loss_fct(torch.div(logits, self.t), labels)
|
| 149 |
+
return loss
|
| 150 |
+
else:
|
| 151 |
+
return pooled_output, logits, labels
|
| 152 |
+
|
| 153 |
+
class BERT_SEG(BertPreTrainedModel):
|
| 154 |
+
def __init__(self, config, args):
|
| 155 |
+
|
| 156 |
+
super(BERT_SEG, self).__init__(config)
|
| 157 |
+
self.num_labels = args.num_labels
|
| 158 |
+
self.bert = BertModel(config)
|
| 159 |
+
self.dense = nn.Linear(config.hidden_size, config.hidden_size)
|
| 160 |
+
self.activation = activation_map[args.activation]
|
| 161 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 162 |
+
self.init_weights()
|
| 163 |
+
|
| 164 |
+
self.alpha = args.alpha
|
| 165 |
+
self.lambda_ = args.lambda_
|
| 166 |
+
self.means = nn.Parameter(torch.randn(self.num_labels, args.feat_dim).cuda())
|
| 167 |
+
nn.init.xavier_uniform_(self.means, gain=math.sqrt(2.0))
|
| 168 |
+
|
| 169 |
+
|
| 170 |
+
def forward(self, input_ids = None, token_type_ids = None, attention_mask=None , labels = None,
|
| 171 |
+
feature_ext = False, mode = None, device=None, p_y = None, class_emb=None, loss_fct=None):
|
| 172 |
+
|
| 173 |
+
outputs = self.bert(
|
| 174 |
+
input_ids, token_type_ids=token_type_ids, attention_mask=attention_mask, output_hidden_states=True)
|
| 175 |
+
encoded_layer_12 = outputs.hidden_states
|
| 176 |
+
pooled_output = self.dense(encoded_layer_12[-1].mean(dim=1))
|
| 177 |
+
pooled_output = self.activation(pooled_output)
|
| 178 |
+
pooled_output = self.dropout(pooled_output)
|
| 179 |
+
|
| 180 |
+
if feature_ext:
|
| 181 |
+
return pooled_output
|
| 182 |
+
else:
|
| 183 |
+
|
| 184 |
+
batch_size = pooled_output.shape[0]
|
| 185 |
+
|
| 186 |
+
XY = torch.matmul(pooled_output, torch.transpose(self.means, 0, 1))
|
| 187 |
+
XX = torch.sum(pooled_output ** 2, dim=1, keepdim=True)
|
| 188 |
+
YY = torch.sum(torch.transpose(self.means, 0, 1)**2, dim=0, keepdim=True)
|
| 189 |
+
neg_sqr_dist = - 0.5 * (XX - 2.0 * XY + YY)
|
| 190 |
+
|
| 191 |
+
# with p_y
|
| 192 |
+
########################################
|
| 193 |
+
p_y = p_y.expand_as(neg_sqr_dist).to(device) # [bsz, n_c_seen]
|
| 194 |
+
dist_exp = torch.exp(neg_sqr_dist)
|
| 195 |
+
dist_exp_py = p_y.mul(dist_exp)
|
| 196 |
+
dist_exp_sum = torch.sum(dist_exp_py, dim=1, keepdim=True) # [bsz, n_c_seen] -> [bsz, 1]
|
| 197 |
+
logits = dist_exp_py / dist_exp_sum # [bsz, n_c, seen]
|
| 198 |
+
|
| 199 |
+
if mode == 'train':
|
| 200 |
+
|
| 201 |
+
labels_reshped = labels.view(labels.size()[0], -1) # [bsz] -> [bsz, 1]
|
| 202 |
+
ALPHA = torch.zeros(batch_size, self.num_labels).to(device).scatter_(1, labels_reshped, self.alpha) # margin
|
| 203 |
+
K = ALPHA + torch.ones([batch_size, self.num_labels]).to(device)
|
| 204 |
+
|
| 205 |
+
#######################################
|
| 206 |
+
dist_margin = torch.mul(neg_sqr_dist, K)
|
| 207 |
+
dist_margin_exp = torch.exp(dist_margin)
|
| 208 |
+
dist_margin_exp_py = p_y.mul(dist_margin_exp)
|
| 209 |
+
dist_exp_sum_margin = torch.sum(dist_margin_exp_py, dim=1, keepdim=True)
|
| 210 |
+
likelihood = dist_margin_exp_py / dist_exp_sum_margin
|
| 211 |
+
loss_ce = - likelihood.log().sum() / batch_size
|
| 212 |
+
|
| 213 |
+
#######################################
|
| 214 |
+
means = self.means if class_emb is None else class_emb
|
| 215 |
+
means_batch = torch.index_select(means, dim=0, index=labels)
|
| 216 |
+
loss_gen = (torch.sum((pooled_output - means_batch)**2) / 2) * (1. / batch_size)
|
| 217 |
+
########################################
|
| 218 |
+
loss = loss_ce + self.lambda_ * loss_gen
|
| 219 |
+
return loss
|
| 220 |
+
|
| 221 |
+
else:
|
| 222 |
+
return pooled_output, logits
|
| 223 |
+
|
| 224 |
+
class CosNorm_Classifier(nn.Module):
|
| 225 |
+
|
| 226 |
+
def __init__(self, in_dims, out_dims, scale=64, device = None):
|
| 227 |
+
|
| 228 |
+
super(CosNorm_Classifier, self).__init__()
|
| 229 |
+
self.in_dims = in_dims
|
| 230 |
+
self.out_dims = out_dims
|
| 231 |
+
self.scale = scale
|
| 232 |
+
self.weight = Parameter(torch.Tensor(out_dims, in_dims).to(device))
|
| 233 |
+
self.reset_parameters()
|
| 234 |
+
|
| 235 |
+
def reset_parameters(self):
|
| 236 |
+
stdv = 1. / math.sqrt(self.weight.size(1))
|
| 237 |
+
self.weight.data.uniform_(-stdv, stdv)
|
| 238 |
+
|
| 239 |
+
def forward(self, input, *args):
|
| 240 |
+
norm_x = torch.norm(input, 2, 1, keepdim=True)
|
| 241 |
+
ex = (norm_x / (1 + norm_x)) * (input / norm_x)
|
| 242 |
+
ew = self.weight / torch.norm(self.weight, 2, 1, keepdim=True)
|
| 243 |
+
return torch.mm(self.scale * ex, ew.t())
|
| 244 |
+
|
| 245 |
+
class BERT_Disaware(BertPreTrainedModel):
|
| 246 |
+
|
| 247 |
+
def __init__(self, config, args):
|
| 248 |
+
|
| 249 |
+
super(BERT_Disaware, self).__init__(config)
|
| 250 |
+
self.num_labels = args.num_labels
|
| 251 |
+
self.bert = BertModel(config)
|
| 252 |
+
|
| 253 |
+
self.dense = nn.Linear(config.hidden_size, config.hidden_size)
|
| 254 |
+
self.activation = nn.ReLU()
|
| 255 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 256 |
+
self.init_weights()
|
| 257 |
+
|
| 258 |
+
self.cosnorm_classifier = CosNorm_Classifier(
|
| 259 |
+
config.hidden_size, args.num_labels, args.scale, args.device)
|
| 260 |
+
|
| 261 |
+
def forward(self, input_ids=None, token_type_ids=None, attention_mask=None, labels=None,
|
| 262 |
+
feature_ext=False, mode=None, loss_fct=None, centroids=None, dist_infos = None):
|
| 263 |
+
|
| 264 |
+
outputs = self.bert(
|
| 265 |
+
input_ids, token_type_ids, attention_mask, output_hidden_states=True)
|
| 266 |
+
encoded_layer_12 = outputs.hidden_states
|
| 267 |
+
pooled_output = self.dense(encoded_layer_12[-1].mean(dim=1))
|
| 268 |
+
pooled_output = self.activation(pooled_output)
|
| 269 |
+
pooled_output = self.dropout(pooled_output)
|
| 270 |
+
x = pooled_output
|
| 271 |
+
|
| 272 |
+
if feature_ext:
|
| 273 |
+
return pooled_output
|
| 274 |
+
|
| 275 |
+
else:
|
| 276 |
+
|
| 277 |
+
feat_size = x.shape[1]
|
| 278 |
+
batch_size = x.shape[0]
|
| 279 |
+
|
| 280 |
+
f_expand = x.unsqueeze(1).expand(-1, self.num_labels, -1)
|
| 281 |
+
centroids_expand = centroids.unsqueeze(0).expand(batch_size, -1, -1)
|
| 282 |
+
dist_cur = torch.norm(f_expand - centroids_expand, 2, 2)
|
| 283 |
+
values_nn, labels_nn = torch.sort(dist_cur, 1)
|
| 284 |
+
|
| 285 |
+
nearest_centers = centroids[labels_nn[:, 0]]
|
| 286 |
+
dist_denominator = torch.norm(x - nearest_centers, 2, 1)
|
| 287 |
+
second_nearest_centers = centroids[labels_nn[:, 1]]
|
| 288 |
+
dist_numerator = torch.norm(x - second_nearest_centers, 2, 1)
|
| 289 |
+
|
| 290 |
+
dist_info = dist_numerator - dist_denominator
|
| 291 |
+
dist_info = torch.exp(dist_info)
|
| 292 |
+
scalar = dist_info
|
| 293 |
+
|
| 294 |
+
reachability = scalar.unsqueeze(1).expand(-1, feat_size)
|
| 295 |
+
x = reachability * pooled_output
|
| 296 |
+
|
| 297 |
+
logits = self.cosnorm_classifier(x)
|
| 298 |
+
|
| 299 |
+
if mode == 'train':
|
| 300 |
+
loss = loss_fct(logits, labels)
|
| 301 |
+
return loss
|
| 302 |
+
|
| 303 |
+
elif mode == 'eval':
|
| 304 |
+
return pooled_output, logits
|
| 305 |
+
|
| 306 |
+
class BERT_MDF_Pretrain(nn.Module):
|
| 307 |
+
|
| 308 |
+
def __init__(self, args):
|
| 309 |
+
|
| 310 |
+
super(BERT_MDF_Pretrain, self).__init__()
|
| 311 |
+
self.num_labels = args.num_labels
|
| 312 |
+
self.bert = BertForMaskedLM.from_pretrained(args.pretrained_bert_model)
|
| 313 |
+
self.dropout = nn.Dropout(0.1) #0.1
|
| 314 |
+
self.classifier = nn.Linear(args.feat_dim, args.num_labels)
|
| 315 |
+
|
| 316 |
+
|
| 317 |
+
def forward(self, X):
|
| 318 |
+
|
| 319 |
+
outputs = self.bert(**X, output_hidden_states=True)
|
| 320 |
+
|
| 321 |
+
CLSEmbedding = outputs.hidden_states[-1][:,0]
|
| 322 |
+
CLSEmbedding = self.dropout(CLSEmbedding)
|
| 323 |
+
logits = self.classifier(CLSEmbedding)
|
| 324 |
+
output_dir = {"logits": logits}
|
| 325 |
+
output_dir["hidden_states"] = outputs.hidden_states[-1][:, 0]
|
| 326 |
+
|
| 327 |
+
return output_dir
|
| 328 |
+
|
| 329 |
+
def mlmForward(self, X, Y = None):
|
| 330 |
+
outputs = self.bert(**X, labels = Y)
|
| 331 |
+
return outputs.loss
|
| 332 |
+
|
| 333 |
+
def loss_ce(self, logits, Y):
|
| 334 |
+
loss = nn.CrossEntropyLoss()
|
| 335 |
+
output = loss(logits, Y)
|
| 336 |
+
return output
|
| 337 |
+
|
| 338 |
+
|
| 339 |
+
|
| 340 |
+
class BERT_MDF(BertPreTrainedModel):
|
| 341 |
+
def __init__(self, config, args):
|
| 342 |
+
super(BERT_MDF, self).__init__(config)
|
| 343 |
+
self.num_labels = args.num_labels
|
| 344 |
+
self.bert = BertModel(config)
|
| 345 |
+
self.dropout = nn.Dropout(0.1) #0.1
|
| 346 |
+
self.classifier = nn.Linear(args.feat_dim, 2)
|
| 347 |
+
self.init_weights()
|
| 348 |
+
|
| 349 |
+
def forward(
|
| 350 |
+
self,
|
| 351 |
+
input_ids=None,
|
| 352 |
+
attention_mask=None,
|
| 353 |
+
token_type_ids=None,
|
| 354 |
+
position_ids=None,
|
| 355 |
+
head_mask=None,
|
| 356 |
+
inputs_embeds=None,
|
| 357 |
+
labels=None,
|
| 358 |
+
):
|
| 359 |
+
|
| 360 |
+
outputs = self.bert(
|
| 361 |
+
input_ids=input_ids,
|
| 362 |
+
attention_mask=attention_mask,
|
| 363 |
+
token_type_ids=token_type_ids,
|
| 364 |
+
position_ids=position_ids,
|
| 365 |
+
head_mask=head_mask,
|
| 366 |
+
output_hidden_states=True
|
| 367 |
+
)
|
| 368 |
+
# Complains if input_embeds is kept
|
| 369 |
+
|
| 370 |
+
pooled_output = outputs[1]
|
| 371 |
+
|
| 372 |
+
pooled_output = self.dropout(pooled_output)
|
| 373 |
+
logits = self.classifier(pooled_output)
|
| 374 |
+
|
| 375 |
+
outputs = (logits,) + outputs[
|
| 376 |
+
2:
|
| 377 |
+
] # add hidden states and attention if they are here
|
| 378 |
+
|
| 379 |
+
return outputs # (loss), logits, (hidden_states), (attentions)
|
| 380 |
+
|
| 381 |
+
|
| 382 |
+
class BertClassificationHead(nn.Module):
|
| 383 |
+
def __init__(self, config):
|
| 384 |
+
super(BertClassificationHead, self).__init__()
|
| 385 |
+
self.dense = nn.Linear(config.hidden_size, config.hidden_size)
|
| 386 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 387 |
+
self.out_proj = nn.Linear(config.hidden_size, config.num_labels-1)
|
| 388 |
+
|
| 389 |
+
def forward(self, feature):
|
| 390 |
+
x = self.dropout(feature)
|
| 391 |
+
x = self.dense(x)
|
| 392 |
+
x = torch.tanh(x)
|
| 393 |
+
x = self.dropout(x)
|
| 394 |
+
x = self.out_proj(x)
|
| 395 |
+
return x
|
| 396 |
+
|
| 397 |
+
class BertContrastiveHead(nn.Module):
|
| 398 |
+
def __init__(self, config):
|
| 399 |
+
super(BertContrastiveHead, self).__init__()
|
| 400 |
+
self.dense = nn.Linear(config.hidden_size, config.hidden_size)
|
| 401 |
+
self.dropout = nn.Dropout(config.hidden_dropout_prob)
|
| 402 |
+
self.out_proj = nn.Linear(config.hidden_size, config.hidden_size)
|
| 403 |
+
|
| 404 |
+
def forward(self, feature):
|
| 405 |
+
x = self.dropout(feature)
|
| 406 |
+
x = self.dense(x)
|
| 407 |
+
x = torch.tanh(x)
|
| 408 |
+
x = self.dropout(x)
|
| 409 |
+
x = self.out_proj(x)
|
| 410 |
+
return x
|
| 411 |
+
|
| 412 |
+
|
| 413 |
+
class BERT_KNNCL(nn.Module):
|
| 414 |
+
|
| 415 |
+
def __init__(self, args):
|
| 416 |
+
super(BERT_KNNCL, self).__init__()
|
| 417 |
+
|
| 418 |
+
self.number_labels = args.anum_labels
|
| 419 |
+
|
| 420 |
+
config = AutoConfig.from_pretrained(
|
| 421 |
+
args.bert_model ,
|
| 422 |
+
num_labels=self.number_labels,
|
| 423 |
+
)
|
| 424 |
+
|
| 425 |
+
self.encoder_q = BertModel.from_pretrained(args.bert_model, config=config)
|
| 426 |
+
self.encoder_k = BertModel.from_pretrained(args.bert_model, config=config)
|
| 427 |
+
|
| 428 |
+
self.classifier_liner = BertClassificationHead(config)
|
| 429 |
+
|
| 430 |
+
self.contrastive_liner_q = BertContrastiveHead(config)
|
| 431 |
+
self.contrastive_liner_k = BertContrastiveHead(config)
|
| 432 |
+
|
| 433 |
+
self.m = 0.999
|
| 434 |
+
self.T = args.temperature
|
| 435 |
+
self.init_weights() # Exec
|
| 436 |
+
self.contrastive_rate_in_training = args.contrastive_rate_in_training
|
| 437 |
+
|
| 438 |
+
# create the label_queue and feature_queue
|
| 439 |
+
self.K = args.queue_size # 7500
|
| 440 |
+
|
| 441 |
+
self.register_buffer("label_queue", torch.randint(0, self.number_labels, [self.K])) # Tensor:(7500,)
|
| 442 |
+
self.register_buffer("feature_queue", torch.randn(self.K, config.hidden_size)) # Tensor:(7500, 768)
|
| 443 |
+
self.feature_queue = torch.nn.functional.normalize(self.feature_queue, dim=0)
|
| 444 |
+
|
| 445 |
+
self.register_buffer("queue_ptr", torch.zeros(1, dtype=torch.long)) # Tensor(1,)
|
| 446 |
+
self.top_k = args.top_k # 25
|
| 447 |
+
self.update_num = args.positive_num # 3
|
| 448 |
+
|
| 449 |
+
# optional and delete can improve the performance indicated
|
| 450 |
+
# by some experiment
|
| 451 |
+
# params_to_train = ["layer." + str(i) for i in range(0, 12)]
|
| 452 |
+
# for name, param in self.encoder_q.named_parameters():
|
| 453 |
+
# param.requires_grad_(False)
|
| 454 |
+
# for term in params_to_train:
|
| 455 |
+
# if term in name:
|
| 456 |
+
# param.requires_grad_(True)
|
| 457 |
+
|
| 458 |
+
def _dequeue_and_enqueue(self, keys, label):
|
| 459 |
+
batch_size = keys.shape[0]
|
| 460 |
+
|
| 461 |
+
ptr = int(self.queue_ptr)
|
| 462 |
+
|
| 463 |
+
if ptr + batch_size > self.K:
|
| 464 |
+
batch_size = self.K - ptr
|
| 465 |
+
keys = keys[: batch_size]
|
| 466 |
+
label = label[: batch_size]
|
| 467 |
+
|
| 468 |
+
# replace the keys at ptr (dequeue ans enqueue)
|
| 469 |
+
self.feature_queue[ptr: ptr + batch_size, :] = keys
|
| 470 |
+
self.label_queue[ptr: ptr + batch_size] = label
|
| 471 |
+
|
| 472 |
+
ptr = (ptr + batch_size) % self.K
|
| 473 |
+
|
| 474 |
+
self.queue_ptr[0] = ptr
|
| 475 |
+
|
| 476 |
+
def select_pos_neg_sample(self, liner_q, label_q):
|
| 477 |
+
label_queue = self.label_queue.clone().detach() # K
|
| 478 |
+
feature_queue = self.feature_queue.clone().detach() # K * hidden_size
|
| 479 |
+
|
| 480 |
+
# 1. expand label_queue and feature_queue to batch_size * K
|
| 481 |
+
batch_size = label_q.shape[0]
|
| 482 |
+
tmp_label_queue = label_queue.repeat([batch_size, 1])
|
| 483 |
+
tmp_feature_queue = feature_queue.unsqueeze(0)
|
| 484 |
+
tmp_feature_queue = tmp_feature_queue.repeat([batch_size, 1, 1]) # batch_size * K * hidden_size
|
| 485 |
+
|
| 486 |
+
# 2.caluate sim
|
| 487 |
+
cos_sim = torch.einsum('nc,nkc->nk', [liner_q, tmp_feature_queue])
|
| 488 |
+
|
| 489 |
+
# 3. get index of postive and neigative
|
| 490 |
+
tmp_label = label_q.unsqueeze(1)
|
| 491 |
+
tmp_label = tmp_label.repeat([1, self.K])
|
| 492 |
+
|
| 493 |
+
pos_mask_index = torch.eq(tmp_label_queue, tmp_label)
|
| 494 |
+
neg_mask_index = ~ pos_mask_index
|
| 495 |
+
|
| 496 |
+
# 4.another option
|
| 497 |
+
feature_value = cos_sim.masked_select(neg_mask_index)
|
| 498 |
+
neg_sample = torch.full_like(cos_sim, -np.inf).cuda()
|
| 499 |
+
neg_sample = neg_sample.masked_scatter(neg_mask_index, feature_value)
|
| 500 |
+
|
| 501 |
+
# 5.topk
|
| 502 |
+
pos_mask_index = pos_mask_index.int()
|
| 503 |
+
pos_number = pos_mask_index.sum(dim=-1)
|
| 504 |
+
pos_min = pos_number.min()
|
| 505 |
+
if pos_min == 0:
|
| 506 |
+
return None
|
| 507 |
+
pos_sample, _ = cos_sim.topk(pos_min, dim=-1)
|
| 508 |
+
pos_sample_top_k = pos_sample[:, 0:self.top_k] # self.topk = 25
|
| 509 |
+
pos_sample = pos_sample_top_k
|
| 510 |
+
pos_sample = pos_sample.contiguous().view([-1, 1])
|
| 511 |
+
|
| 512 |
+
neg_mask_index = neg_mask_index.int()
|
| 513 |
+
neg_number = neg_mask_index.sum(dim=-1)
|
| 514 |
+
neg_min = neg_number.min()
|
| 515 |
+
if neg_min == 0:
|
| 516 |
+
return None
|
| 517 |
+
neg_sample, _ = neg_sample.topk(neg_min, dim=-1)
|
| 518 |
+
neg_topk = min(pos_min, self.top_k)
|
| 519 |
+
neg_sample = neg_sample.repeat([1, neg_topk])
|
| 520 |
+
neg_sample = neg_sample.view([-1, neg_min])
|
| 521 |
+
logits_con = torch.cat([pos_sample, neg_sample], dim=-1)
|
| 522 |
+
logits_con /= self.T
|
| 523 |
+
return logits_con
|
| 524 |
+
|
| 525 |
+
def init_weights(self):
|
| 526 |
+
for param_q, param_k in zip(self.contrastive_liner_q.parameters(), self.contrastive_liner_k.parameters()):
|
| 527 |
+
param_k.data = param_q.data
|
| 528 |
+
|
| 529 |
+
def update_encoder_k(self):
|
| 530 |
+
for param_q, param_k in zip(self.encoder_q.parameters(), self.encoder_k.parameters()):
|
| 531 |
+
param_k.data = param_k.data * self.m + param_q.data * (1. - self.m)
|
| 532 |
+
for param_q, param_k in zip(self.contrastive_liner_q.parameters(), self.contrastive_liner_k.parameters()):
|
| 533 |
+
param_k.data = param_k.data * self.m + param_q.data * (1. - self.m)
|
| 534 |
+
|
| 535 |
+
def reshape_dict(self, batch):
|
| 536 |
+
for k, v in batch.items():
|
| 537 |
+
shape = v.shape
|
| 538 |
+
batch[k] = v.view([-1, shape[-1]])
|
| 539 |
+
return batch
|
| 540 |
+
|
| 541 |
+
def l2norm(self, x: torch.Tensor):
|
| 542 |
+
norm = torch.pow(x, 2).sum(dim=-1, keepdim=True).sqrt()
|
| 543 |
+
x = torch.div(x, norm)
|
| 544 |
+
return x
|
| 545 |
+
|
| 546 |
+
def forward_no_multi_v2(self,
|
| 547 |
+
query,
|
| 548 |
+
positive_sample=None,
|
| 549 |
+
negative_sample=None,
|
| 550 |
+
):
|
| 551 |
+
labels = query["labels"]
|
| 552 |
+
labels = labels.view(-1)
|
| 553 |
+
|
| 554 |
+
with torch.no_grad():
|
| 555 |
+
self.update_encoder_k()
|
| 556 |
+
update_sample = self.reshape_dict(positive_sample)
|
| 557 |
+
bert_output_p = self.encoder_k(**update_sample)
|
| 558 |
+
update_keys = bert_output_p[1]
|
| 559 |
+
update_keys = self.contrastive_liner_k(update_keys)
|
| 560 |
+
update_keys = self.l2norm(update_keys)
|
| 561 |
+
tmp_labels = labels.unsqueeze(-1)
|
| 562 |
+
tmp_labels = tmp_labels.repeat([1, self.update_num])
|
| 563 |
+
tmp_labels = tmp_labels.view(-1)
|
| 564 |
+
self._dequeue_and_enqueue(update_keys, tmp_labels)
|
| 565 |
+
|
| 566 |
+
query.pop('labels')
|
| 567 |
+
|
| 568 |
+
bert_output_q = self.encoder_q(**query)
|
| 569 |
+
q = bert_output_q[1]
|
| 570 |
+
liner_q = self.contrastive_liner_q(q)
|
| 571 |
+
liner_q = self.l2norm(liner_q)
|
| 572 |
+
logits_cls = self.classifier_liner(q)
|
| 573 |
+
|
| 574 |
+
if self.number_labels == 1:
|
| 575 |
+
loss_fct = MSELoss()
|
| 576 |
+
loss_cls = loss_fct(logits_cls.view(-1), labels)
|
| 577 |
+
else:
|
| 578 |
+
loss_fct = CrossEntropyLoss()
|
| 579 |
+
loss_cls = loss_fct(logits_cls.view(-1, self.number_labels - 1), labels)
|
| 580 |
+
|
| 581 |
+
logits_con = self.select_pos_neg_sample(liner_q, labels)
|
| 582 |
+
|
| 583 |
+
if logits_con is not None:
|
| 584 |
+
labels_con = torch.zeros(logits_con.shape[0], dtype=torch.long).cuda()
|
| 585 |
+
loss_fct = CrossEntropyLoss()
|
| 586 |
+
loss_con = loss_fct(logits_con, labels_con)
|
| 587 |
+
|
| 588 |
+
loss = loss_con * self.contrastive_rate_in_training + \
|
| 589 |
+
loss_cls * (1 - self.contrastive_rate_in_training)
|
| 590 |
+
else:
|
| 591 |
+
loss = loss_cls
|
| 592 |
+
|
| 593 |
+
return SequenceClassifierOutput(
|
| 594 |
+
loss=loss,
|
| 595 |
+
)
|
| 596 |
+
|
| 597 |
+
def forward(self,
|
| 598 |
+
query, # batch_size * max_length
|
| 599 |
+
mode,
|
| 600 |
+
positive_sample=None, # batch_size * max_length
|
| 601 |
+
negative_sample=None, # batch_size * sample_num * max_length
|
| 602 |
+
):
|
| 603 |
+
if mode == 'train':
|
| 604 |
+
return self.forward_no_multi_v2(query=query, positive_sample=positive_sample,
|
| 605 |
+
negative_sample=negative_sample)
|
| 606 |
+
elif mode == 'validation':
|
| 607 |
+
labels = query['labels']
|
| 608 |
+
query.pop('labels')
|
| 609 |
+
seq_embed = self.encoder_q(**query)[1]
|
| 610 |
+
|
| 611 |
+
logits_cls = self.classifier_liner(seq_embed)
|
| 612 |
+
probs = torch.softmax(logits_cls, dim=1)
|
| 613 |
+
return torch.argmax(probs, dim=1).tolist(), labels.cpu().numpy().tolist()
|
| 614 |
+
elif mode == 'test':
|
| 615 |
+
|
| 616 |
+
query.pop('labels')
|
| 617 |
+
seq_embed = self.encoder_q(**query)[1]
|
| 618 |
+
logits_cls = self.classifier_liner(seq_embed)
|
| 619 |
+
|
| 620 |
+
probs = torch.softmax(logits_cls, dim=1)
|
| 621 |
+
return probs, seq_embed
|
| 622 |
+
else:
|
| 623 |
+
raise ValueError("undefined mode")
|
| 624 |
+
|
TEXTOIR-main/open_intent_detection/backbones/llama.py
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
|
| 3 |
+
from peft import (
|
| 4 |
+
LoraConfig,
|
| 5 |
+
get_peft_model,
|
| 6 |
+
)
|
| 7 |
+
|
| 8 |
+
from torch import nn
|
| 9 |
+
from transformers import AutoModelForCausalLM
|
| 10 |
+
|
| 11 |
+
from .bert import CosNorm_Classifier
|
| 12 |
+
|
| 13 |
+
activation_map = {'relu': nn.ReLU(), 'tanh': nn.Tanh()}
|
| 14 |
+
|
| 15 |
+
class LLAMA_lora_Disaware(nn.Module):
|
| 16 |
+
def __init__(self, args):
|
| 17 |
+
super().__init__()
|
| 18 |
+
self.num_labels = args.num_labels
|
| 19 |
+
self.llama = AutoModelForCausalLM.from_pretrained(
|
| 20 |
+
args.llama_model,
|
| 21 |
+
return_dict=True,
|
| 22 |
+
load_in_8bit=False,
|
| 23 |
+
device_map=args.device,
|
| 24 |
+
low_cpu_mem_usage=True,
|
| 25 |
+
torch_dtype=torch.float16,
|
| 26 |
+
)
|
| 27 |
+
self.llama.config.pad_token_id = 0 # unk
|
| 28 |
+
self.llama.config.bos_token_id = 1
|
| 29 |
+
self.llama.config.eos_token_id = 2
|
| 30 |
+
#self.llama.eval()
|
| 31 |
+
target_modules=[ "q_proj", "v_proj"]
|
| 32 |
+
config = LoraConfig(
|
| 33 |
+
r=4,
|
| 34 |
+
lora_alpha=8,
|
| 35 |
+
target_modules=target_modules,
|
| 36 |
+
lora_dropout=0.05,
|
| 37 |
+
bias="none",
|
| 38 |
+
task_type="CAUSAL_LM",
|
| 39 |
+
)
|
| 40 |
+
print("lora", config)
|
| 41 |
+
self.llama = get_peft_model(self.llama, config)
|
| 42 |
+
hidden_dropout_prob = 0.1
|
| 43 |
+
hidden_size = self.llama.config.hidden_size
|
| 44 |
+
hidden_size_2 = hidden_size // 2
|
| 45 |
+
self.dense = nn.Linear(hidden_size, hidden_size).half()
|
| 46 |
+
self.activation = activation_map[args.activation]
|
| 47 |
+
self.dropout = nn.Dropout(hidden_dropout_prob).half()
|
| 48 |
+
self.dense = self.dense.to(args.device)
|
| 49 |
+
self.activation = self.activation.to(args.device)
|
| 50 |
+
self.dropout = self.dropout.to(args.device)
|
| 51 |
+
#self.init_weights()
|
| 52 |
+
self.cosnorm_classifier = CosNorm_Classifier(
|
| 53 |
+
hidden_size, args.num_labels, args.scale, args.device)
|
| 54 |
+
|
| 55 |
+
|
| 56 |
+
def forward(self, input_ids=None, token_type_ids=None, attention_mask=None, labels=None,
|
| 57 |
+
feature_ext=False, mode=None, loss_fct=None, centroids=None, dist_infos = None):
|
| 58 |
+
outputs = self.llama(input_ids=input_ids, attention_mask=attention_mask, output_hidden_states=True )
|
| 59 |
+
encoded_layer_ = outputs.hidden_states[-1].mean(dim=1)
|
| 60 |
+
|
| 61 |
+
#input_data = input_data.float()
|
| 62 |
+
pooled_output = self.dense(encoded_layer_)
|
| 63 |
+
pooled_output = self.activation(pooled_output)
|
| 64 |
+
pooled_output = self.dropout(pooled_output)
|
| 65 |
+
|
| 66 |
+
x = pooled_output
|
| 67 |
+
|
| 68 |
+
if feature_ext:
|
| 69 |
+
return pooled_output
|
| 70 |
+
|
| 71 |
+
else:
|
| 72 |
+
|
| 73 |
+
feat_size = x.shape[1]
|
| 74 |
+
batch_size = x.shape[0]
|
| 75 |
+
|
| 76 |
+
f_expand = x.unsqueeze(1).expand(-1, self.num_labels, -1)
|
| 77 |
+
centroids_expand = centroids.unsqueeze(0).expand(batch_size, -1, -1)
|
| 78 |
+
dist_cur = torch.norm(f_expand - centroids_expand, 2, 2)
|
| 79 |
+
values_nn, labels_nn = torch.sort(dist_cur, 1)
|
| 80 |
+
|
| 81 |
+
nearest_centers = centroids[labels_nn[:, 0]]
|
| 82 |
+
dist_denominator = torch.norm(x - nearest_centers, 2, 1)
|
| 83 |
+
second_nearest_centers = centroids[labels_nn[:, 1]]
|
| 84 |
+
dist_numerator = torch.norm(x - second_nearest_centers, 2, 1)
|
| 85 |
+
|
| 86 |
+
dist_info = dist_numerator - dist_denominator
|
| 87 |
+
dist_info = torch.exp(dist_info)
|
| 88 |
+
scalar = dist_info
|
| 89 |
+
|
| 90 |
+
reachability = scalar.unsqueeze(1).expand(-1, feat_size)
|
| 91 |
+
x = reachability * pooled_output
|
| 92 |
+
|
| 93 |
+
logits = self.cosnorm_classifier(x)
|
| 94 |
+
|
| 95 |
+
if mode == 'train':
|
| 96 |
+
loss = loss_fct(logits, labels)
|
| 97 |
+
return loss
|
| 98 |
+
|
| 99 |
+
elif mode == 'eval':
|
| 100 |
+
return pooled_output, logits
|
TEXTOIR-main/open_intent_detection/backbones/utils.py
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import torch
|
| 2 |
+
from torch import nn
|
| 3 |
+
import numpy as np
|
| 4 |
+
|
| 5 |
+
def l2_norm(input,axis=1):
|
| 6 |
+
norm = torch.norm(input, 2, axis, True)
|
| 7 |
+
output = torch.div(input, norm)
|
| 8 |
+
return output
|
| 9 |
+
|
| 10 |
+
class L2_normalization(nn.Module):
|
| 11 |
+
def forward(self, input):
|
| 12 |
+
return l2_norm(input)
|
| 13 |
+
|
| 14 |
+
def freeze_bert_parameters(model):
|
| 15 |
+
for name, param in model.bert.named_parameters():
|
| 16 |
+
param.requires_grad = False
|
| 17 |
+
if "encoder.layer.11" in name or "pooler" in name:
|
| 18 |
+
param.requires_grad = True
|
| 19 |
+
return model
|
| 20 |
+
|
| 21 |
+
def freeze_bert_parameters_KCL(model):
|
| 22 |
+
for name, param in model.encoder_q.named_parameters():
|
| 23 |
+
param.requires_grad = False
|
| 24 |
+
if "encoder.layer.11" in name or "pooler" in name:
|
| 25 |
+
param.requires_grad = True
|
| 26 |
+
for name, param in model.encoder_k.named_parameters():
|
| 27 |
+
param.requires_grad = False
|
| 28 |
+
if "encoder.layer.11" in name or "pooler" in name:
|
| 29 |
+
param.requires_grad = True
|
| 30 |
+
return model
|
| 31 |
+
|
| 32 |
+
class ConvexSampler(nn.Module):
|
| 33 |
+
def __init__(self, args):
|
| 34 |
+
super(ConvexSampler, self).__init__()
|
| 35 |
+
self.multiple_convex = args.multiple_convex
|
| 36 |
+
self.multiple_convex_eval = args.multiple_convex_eval
|
| 37 |
+
self.unseen_label_id = args.unseen_label_id
|
| 38 |
+
self.device = args.device
|
| 39 |
+
self.batch_size = args.train_batch_size
|
| 40 |
+
self.oos_num = args.train_batch_size
|
| 41 |
+
self.feat_dim = args.feat_dim
|
| 42 |
+
|
| 43 |
+
def forward(self, z, label_ids, mode=None):
|
| 44 |
+
num_convex = self.batch_size * self.multiple_convex
|
| 45 |
+
num_convex_eval = self.batch_size * self.multiple_convex_eval
|
| 46 |
+
convex_list = []
|
| 47 |
+
if mode =='train':
|
| 48 |
+
if label_ids.size(0)>2:
|
| 49 |
+
while len(convex_list) < num_convex:
|
| 50 |
+
cdt = np.random.choice(label_ids.size(0), 2, replace=False)
|
| 51 |
+
# cdt = np.random.choice(label_ids.size(0) - self.oos_num, 2, replace=False)
|
| 52 |
+
if label_ids[cdt[0]] != label_ids[cdt[1]]:
|
| 53 |
+
s = np.random.uniform(0, 1, 1)
|
| 54 |
+
convex_list.append(s[0] * z[cdt[0]] + (1 - s[0]) * z[cdt[1]])
|
| 55 |
+
convex_samples = torch.cat(convex_list, dim=0).view(num_convex, -1)
|
| 56 |
+
z = torch.cat((z, convex_samples), dim=0)
|
| 57 |
+
label_ids = torch.cat((label_ids, torch.tensor([self.unseen_label_id] * num_convex).to(self.device)), dim=0)
|
| 58 |
+
elif mode == 'eval':
|
| 59 |
+
if label_ids.size(0) > 2:
|
| 60 |
+
val_num = num_convex_eval
|
| 61 |
+
while len(convex_list) < val_num:
|
| 62 |
+
cdt = np.random.choice(label_ids.size(0), 2, replace=False)
|
| 63 |
+
if label_ids[cdt[0]] != label_ids[cdt[1]]:
|
| 64 |
+
s = np.random.uniform(0, 1, 1)
|
| 65 |
+
convex_list.append(s[0] * z[cdt[0]] + (1 - s[0]) * z[cdt[1]])
|
| 66 |
+
convex_samples = torch.cat(convex_list, dim=0).view(val_num, -1)
|
| 67 |
+
z = torch.cat((z, convex_samples), dim=0)
|
| 68 |
+
label_ids = torch.cat((label_ids, torch.tensor([self.unseen_label_id] * val_num).to(self.device)), dim=0)
|
| 69 |
+
return z, label_ids
|
| 70 |
+
|
| 71 |
+
def pair_cosine_similarity(x, x_adv, eps=1e-8):
|
| 72 |
+
n = x.norm(p=2, dim=1, keepdim=True)
|
| 73 |
+
n_adv = x_adv.norm(p=2, dim=1, keepdim=True)
|
| 74 |
+
return (x @ x.t()) / (n * n.t()).clamp(min=eps), (x_adv @ x_adv.t()) / (n_adv * n_adv.t()).clamp(min=eps), (x @ x_adv.t()) / (n * n_adv.t()).clamp(min=eps)
|
| 75 |
+
|
| 76 |
+
def nt_xent(x, x_adv, mask, cuda=True, t=0.1):
|
| 77 |
+
x, x_adv, x_c = pair_cosine_similarity(x, x_adv)
|
| 78 |
+
x = torch.exp(x / t)
|
| 79 |
+
x_adv = torch.exp(x_adv / t)
|
| 80 |
+
x_c = torch.exp(x_c / t)
|
| 81 |
+
mask_count = mask.sum(1)
|
| 82 |
+
mask_reverse = (~(mask.bool())).long()
|
| 83 |
+
if cuda:
|
| 84 |
+
dis = (x * (mask - torch.eye(x.size(0)).long().cuda()) + x_c * mask) / (x.sum(1) + x_c.sum(1) - torch.exp(torch.tensor(1 / t))) + mask_reverse
|
| 85 |
+
dis_adv = (x_adv * (mask - torch.eye(x.size(0)).long().cuda()) + x_c.T * mask) / (x_adv.sum(1) + x_c.sum(0) - torch.exp(torch.tensor(1 / t))) + mask_reverse
|
| 86 |
+
else:
|
| 87 |
+
dis = (x * (mask - torch.eye(x.size(0)).long()) + x_c * mask) / (x.sum(1) + x_c.sum(1) - torch.exp(torch.tensor(1 / t))) + mask_reverse
|
| 88 |
+
dis_adv = (x_adv * (mask - torch.eye(x.size(0)).long()) + x_c.T * mask) / (x_adv.sum(1) + x_c.sum(0) - torch.exp(torch.tensor(1 / t))) + mask_reverse
|
| 89 |
+
loss = (torch.log(dis).sum(1) + torch.log(dis_adv).sum(1)) / mask_count
|
| 90 |
+
return -loss.mean()
|
TEXTOIR-main/open_intent_detection/configs/ADB.py
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
bert_model (directory): The path for the pre-trained bert model.
|
| 11 |
+
num_train_epochs (int): The number of training epochs.
|
| 12 |
+
num_labels (autofill): The output dimension.
|
| 13 |
+
max_seq_length (autofill): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 14 |
+
freeze_backbone_parameters (binary): Whether to freeze all parameters but the last layer.
|
| 15 |
+
feat_dim (int): The feature dimension.
|
| 16 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 17 |
+
lr_boundary (float): The learning rate of the decision boundary.
|
| 18 |
+
lr (float): The learning rate of backbone.
|
| 19 |
+
activation (str): The activation function of the hidden layer (support 'relu' and 'tanh').
|
| 20 |
+
train_batch_size (int): The batch size for training.
|
| 21 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 22 |
+
test_batch_size (int): The batch size for testing.
|
| 23 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 24 |
+
"""
|
| 25 |
+
hyper_parameters = {
|
| 26 |
+
|
| 27 |
+
'bert_model': "/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/",
|
| 28 |
+
'num_train_epochs': 100,
|
| 29 |
+
'num_labels': None,
|
| 30 |
+
'max_seq_length': None,
|
| 31 |
+
'freeze_backbone_parameters': True,
|
| 32 |
+
'feat_dim': 768,
|
| 33 |
+
'warmup_proportion': 0.1,
|
| 34 |
+
'lr_boundary': 0.05,
|
| 35 |
+
'lr': 2e-5,
|
| 36 |
+
'activation': 'relu',
|
| 37 |
+
'train_batch_size': 128,
|
| 38 |
+
'eval_batch_size': 64,
|
| 39 |
+
'test_batch_size': 64,
|
| 40 |
+
'wait_patient': 10
|
| 41 |
+
|
| 42 |
+
}
|
| 43 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/ARPL.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
bert_model (directory): The path for the pre-trained bert model.
|
| 11 |
+
num_train_epochs (int): The number of training epochs.
|
| 12 |
+
num_labels (autofill): The output dimension.
|
| 13 |
+
max_seq_length (autofill): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 14 |
+
freeze_backbone_parameters (binary): Whether to freeze all parameters but the last layer.
|
| 15 |
+
feat_dim (int): The feature dimension.
|
| 16 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 17 |
+
lr (float): The learning rate of backbone.
|
| 18 |
+
activation (str): The activation function of the hidden layer (support 'relu' and 'tanh').
|
| 19 |
+
threshold (float): The probability threshold for detecting the open samples.
|
| 20 |
+
train_batch_size (int): The batch size for training.
|
| 21 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 22 |
+
test_batch_size (int): The batch size for testing.
|
| 23 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 24 |
+
"""
|
| 25 |
+
hyper_parameters = {
|
| 26 |
+
|
| 27 |
+
'bert_model': "/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/",
|
| 28 |
+
'num_train_epochs': 100,
|
| 29 |
+
'num_labels': None,
|
| 30 |
+
'max_seq_length': None,
|
| 31 |
+
'freeze_backbone_parameters': True,
|
| 32 |
+
'feat_dim': 768,
|
| 33 |
+
'warmup_proportion': 0.1,
|
| 34 |
+
'lr': 2e-5,
|
| 35 |
+
'activation': 'tanh',
|
| 36 |
+
'threshold': 0.5,
|
| 37 |
+
'train_batch_size': 128,
|
| 38 |
+
'eval_batch_size': 64,
|
| 39 |
+
'test_batch_size': 64,
|
| 40 |
+
'wait_patient': 10,
|
| 41 |
+
'lr_2': 2e-5,
|
| 42 |
+
'temp': 1.0,
|
| 43 |
+
'weight_pl': 0.1
|
| 44 |
+
|
| 45 |
+
}
|
| 46 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/DA-ADB.py
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
bert_model (directory): The path for the pre-trained bert model.
|
| 11 |
+
num_train_epochs (int): The number of training epochs.
|
| 12 |
+
num_labels (autofill): The output dimension.
|
| 13 |
+
max_seq_length (autofill): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 14 |
+
freeze_backbone_parameters (binary): Whether to freeze all parameters but the last layer.
|
| 15 |
+
feat_dim (int): The feature dimension.
|
| 16 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 17 |
+
scale (float): The scale factor of the cosine classifier.
|
| 18 |
+
lr_boundary (float): The learning rate of the decision boundary.
|
| 19 |
+
lr (float): The learning rate of backbone.
|
| 20 |
+
activation (str): The activation function of the hidden layer (support 'relu' and 'tanh').
|
| 21 |
+
train_batch_size (int): The batch size for training.
|
| 22 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 23 |
+
test_batch_size (int): The batch size for testing.
|
| 24 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 25 |
+
"""
|
| 26 |
+
hyper_parameters = {
|
| 27 |
+
|
| 28 |
+
'bert_model': "/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/",
|
| 29 |
+
'num_train_epochs':100,
|
| 30 |
+
'num_labels': None,
|
| 31 |
+
'max_seq_length': None,
|
| 32 |
+
'freeze_backbone_parameters': True,
|
| 33 |
+
'feat_dim': 768,
|
| 34 |
+
'warmup_proportion': 0.1,
|
| 35 |
+
'scale': 4,
|
| 36 |
+
'lr_boundary': 0.05,
|
| 37 |
+
'lr': 2e-5,
|
| 38 |
+
'activation': 'relu',
|
| 39 |
+
'train_batch_size': 128,
|
| 40 |
+
'eval_batch_size': 64,
|
| 41 |
+
'test_batch_size': 64,
|
| 42 |
+
'wait_patient': 10,
|
| 43 |
+
|
| 44 |
+
}
|
| 45 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/DA-ADB_llama.py
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
llama_model (directory): The path for the pre-trained llama model.
|
| 11 |
+
num_train_epochs (int): The number of training epochs.
|
| 12 |
+
num_labels (autofill): The output dimension.
|
| 13 |
+
max_seq_length (autofill): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 14 |
+
freeze_backbone_parameters (binary): Whether to freeze all parameters but the last layer.
|
| 15 |
+
feat_dim (int): The feature dimension.
|
| 16 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 17 |
+
scale (float): The scale factor of the cosine classifier.
|
| 18 |
+
lr_boundary (float): The learning rate of the decision boundary.
|
| 19 |
+
lr (float): The learning rate of backbone.
|
| 20 |
+
activation (str): The activation function of the hidden layer (support 'relu' and 'tanh').
|
| 21 |
+
train_batch_size (int): The batch size for training.
|
| 22 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 23 |
+
test_batch_size (int): The batch size for testing.
|
| 24 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 25 |
+
"""
|
| 26 |
+
hyper_parameters = {
|
| 27 |
+
|
| 28 |
+
'llama_model': "/home/sharing/disk1/pretrained_embedding/llama/llama",
|
| 29 |
+
'num_train_epochs':100,
|
| 30 |
+
'num_labels': None,
|
| 31 |
+
'max_seq_length': None,
|
| 32 |
+
'freeze_backbone_parameters': False,
|
| 33 |
+
'feat_dim': 4096,
|
| 34 |
+
'warmup_proportion': 0.1,
|
| 35 |
+
'scale': 4,
|
| 36 |
+
'lr_boundary': 0.05,
|
| 37 |
+
'lr': 5e-8,
|
| 38 |
+
'activation': 'relu',
|
| 39 |
+
'train_batch_size': 32,
|
| 40 |
+
'eval_batch_size': 8,
|
| 41 |
+
'test_batch_size': 8,
|
| 42 |
+
'wait_patient': 10,
|
| 43 |
+
|
| 44 |
+
}
|
| 45 |
+
print("Hyper-parameters: ", hyper_parameters)
|
| 46 |
+
|
| 47 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/DOC.py
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
bert_model (directory): The path for the pre-trained bert model.
|
| 11 |
+
num_train_epochs (int): The number of training epochs.
|
| 12 |
+
num_labels (autofill): The output dimension.
|
| 13 |
+
max_seq_length (autofill): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 14 |
+
freeze_backbone_parameters (binary): Whether to freeze all parameters but the last layer.
|
| 15 |
+
feat_dim (int): The feature dimension.
|
| 16 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 17 |
+
lr (float): The learning rate of backbone.
|
| 18 |
+
activation (str): The activation function of the hidden layer (support 'relu' and 'tanh').
|
| 19 |
+
scale (float): The scale factor of DOC.
|
| 20 |
+
train_batch_size (int): The batch size for training.
|
| 21 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 22 |
+
test_batch_size (int): The batch size for testing.
|
| 23 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 24 |
+
"""
|
| 25 |
+
hyper_parameters = {
|
| 26 |
+
|
| 27 |
+
'bert_model': "/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/",
|
| 28 |
+
'num_train_epochs': 100,
|
| 29 |
+
'num_labels': None,
|
| 30 |
+
'max_seq_length': None,
|
| 31 |
+
'freeze_backbone_parameters': True,
|
| 32 |
+
'feat_dim': 768,
|
| 33 |
+
'warmup_proportion': 0.1,
|
| 34 |
+
'lr': 2e-5,
|
| 35 |
+
'activation': 'relu',
|
| 36 |
+
'scale': 3,
|
| 37 |
+
'train_batch_size': 128,
|
| 38 |
+
'eval_batch_size': 64,
|
| 39 |
+
'test_batch_size': 64,
|
| 40 |
+
'wait_patient': 10
|
| 41 |
+
}
|
| 42 |
+
|
| 43 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/DeepUnk.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
bert_model (directory): The path for the pre-trained bert model.
|
| 11 |
+
num_train_epochs (int): The number of training epochs.
|
| 12 |
+
num_labels (autofill): The output dimension.
|
| 13 |
+
max_seq_length (autofill): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 14 |
+
freeze_backbone_parameters (binary): Whether to freeze all parameters but the last layer.
|
| 15 |
+
feat_dim (int): The feature dimension.
|
| 16 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 17 |
+
lr (float): The learning rate of backbone.
|
| 18 |
+
activation (str): The activation function of the hidden layer (support 'relu' and 'tanh').
|
| 19 |
+
n_neighbors (int): The number of neighbors of LOF.
|
| 20 |
+
contamination (float): The contamination factor of LOF.
|
| 21 |
+
train_batch_size (int): The batch size for training.
|
| 22 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 23 |
+
test_batch_size (int): The batch size for testing.
|
| 24 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 25 |
+
"""
|
| 26 |
+
hyper_parameters = {
|
| 27 |
+
|
| 28 |
+
'bert_model': "/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/",
|
| 29 |
+
'num_train_epochs': 100,
|
| 30 |
+
'num_labels': None,
|
| 31 |
+
'max_seq_length': None,
|
| 32 |
+
'freeze_backbone_parameters': True,
|
| 33 |
+
'feat_dim': 768,
|
| 34 |
+
'warmup_proportion': 0.1,
|
| 35 |
+
'lr': 2e-5,
|
| 36 |
+
'activation': 'relu',
|
| 37 |
+
'n_neighbors': 20,
|
| 38 |
+
'contamination': 0.05,
|
| 39 |
+
'train_batch_size': 128,
|
| 40 |
+
'eval_batch_size': 64,
|
| 41 |
+
'test_batch_size': 64,
|
| 42 |
+
'wait_patient': 10
|
| 43 |
+
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/K+1-way.py
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
bert_model (directory): The path for the pre-trained bert model.
|
| 11 |
+
num_train_epochs: The training epochs.
|
| 12 |
+
max_seq_len (int): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 13 |
+
feat_dim (int): The feature dimension.
|
| 14 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 15 |
+
lr (float): The learning rate of backbone.
|
| 16 |
+
threshold (float): The probability threshold for detecting the open samples.
|
| 17 |
+
train_batch_size (int): The batch size for training.
|
| 18 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 19 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 20 |
+
lr_mlp (float): The learning rate of mlp.
|
| 21 |
+
multiple_convex (int): The multiple of gen ood of training stage.
|
| 22 |
+
multiple_convex_eval (int): The multiple of gen ood of eval stage.
|
| 23 |
+
"""
|
| 24 |
+
hyper_parameters = {
|
| 25 |
+
|
| 26 |
+
'bert_model': "/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/",
|
| 27 |
+
'num_train_epochs': 100,
|
| 28 |
+
'max_seq_length': None,
|
| 29 |
+
'freeze_backbone_parameters': True,
|
| 30 |
+
'feat_dim': 768,
|
| 31 |
+
'warmup_proportion': 0.1,
|
| 32 |
+
'lr': 2e-5,
|
| 33 |
+
'activation': 'relu',
|
| 34 |
+
'train_batch_size': 64,
|
| 35 |
+
'eval_batch_size': 64,
|
| 36 |
+
'test_batch_size': 64,
|
| 37 |
+
'wait_patient': 10,
|
| 38 |
+
'multiple_convex': 1,
|
| 39 |
+
'multiple_convex_eval': 1,
|
| 40 |
+
'temp': 0.1
|
| 41 |
+
|
| 42 |
+
}
|
| 43 |
+
|
| 44 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/KNNCL.py
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
|
| 9 |
+
hyper_parameters = {
|
| 10 |
+
|
| 11 |
+
'bert_model': "/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/",
|
| 12 |
+
'num_train_epochs': 100,
|
| 13 |
+
'num_labels': None,
|
| 14 |
+
'max_seq_length': None,
|
| 15 |
+
'freeze_backbone_parameters': True,
|
| 16 |
+
'feat_dim': 768,
|
| 17 |
+
'warmup_proportion': 0.1,
|
| 18 |
+
'lr': 1e-05,
|
| 19 |
+
'activation': 'relu',
|
| 20 |
+
'train_batch_size': 128,
|
| 21 |
+
'eval_batch_size': 64,
|
| 22 |
+
'test_batch_size': 64,
|
| 23 |
+
'wait_patient': 100,
|
| 24 |
+
'warmup_proportion':0.1,
|
| 25 |
+
|
| 26 |
+
'n_neighbors': 20,
|
| 27 |
+
'contamination': 0.05,
|
| 28 |
+
|
| 29 |
+
"temperature": 0.5,
|
| 30 |
+
"contrastive_rate_in_training": 0.1,
|
| 31 |
+
"top_k": 25,
|
| 32 |
+
"positive_num":3,
|
| 33 |
+
"clip": 0.25,
|
| 34 |
+
"queue_size": 7500,
|
| 35 |
+
|
| 36 |
+
}
|
| 37 |
+
|
| 38 |
+
if args.dataset == "banking":
|
| 39 |
+
if args.known_cls_ratio == 0.25:
|
| 40 |
+
hyper_parameters["queue_size"]=6500
|
| 41 |
+
elif args.known_cls_ratio == 0.5:
|
| 42 |
+
hyper_parameters["queue_size"]=8000
|
| 43 |
+
hyper_parameters["top_k"]=30
|
| 44 |
+
|
| 45 |
+
if args.dataset == "oos":
|
| 46 |
+
hyper_parameters["queue_size"]=6500
|
| 47 |
+
hyper_parameters["top_k"]=15
|
| 48 |
+
|
| 49 |
+
|
| 50 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/LOF.py
ADDED
|
@@ -0,0 +1,46 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
bert_model (directory): The path for the pre-trained bert model.
|
| 11 |
+
num_train_epochs (int): The number of training epochs.
|
| 12 |
+
num_labels (autofill): The output dimension.
|
| 13 |
+
max_seq_length (autofill): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 14 |
+
freeze_backbone_parameters (binary): Whether to freeze all parameters but the last layer.
|
| 15 |
+
feat_dim (int): The feature dimension.
|
| 16 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 17 |
+
lr (float): The learning rate of backbone.
|
| 18 |
+
activation (str): The activation function of the hidden layer (support 'relu' and 'tanh').
|
| 19 |
+
n_neighbors (int): The number of neighbors of LOF.
|
| 20 |
+
contamination (float): The contamination factor of LOF.
|
| 21 |
+
train_batch_size (int): The batch size for training.
|
| 22 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 23 |
+
test_batch_size (int): The batch size for testing.
|
| 24 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 25 |
+
"""
|
| 26 |
+
hyper_parameters = {
|
| 27 |
+
|
| 28 |
+
'bert_model': "/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/",
|
| 29 |
+
'num_train_epochs': 100,
|
| 30 |
+
'num_labels': None,
|
| 31 |
+
'max_seq_length': None,
|
| 32 |
+
'freeze_backbone_parameters': True,
|
| 33 |
+
'feat_dim': 768,
|
| 34 |
+
'warmup_proportion': 0.1,
|
| 35 |
+
'lr': 2e-5,
|
| 36 |
+
'activation': 'relu',
|
| 37 |
+
'n_neighbors': 20,
|
| 38 |
+
'contamination': 0.05,
|
| 39 |
+
'train_batch_size': 128,
|
| 40 |
+
'eval_batch_size': 64,
|
| 41 |
+
'test_batch_size': 64,
|
| 42 |
+
'wait_patient': 10
|
| 43 |
+
|
| 44 |
+
}
|
| 45 |
+
|
| 46 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/MDF.py
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
bert_model (directory): The path for the pre-trained bert model.
|
| 11 |
+
max_seq_length (autofill): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 12 |
+
num_train_epochs (int): The number of training epochs.
|
| 13 |
+
num_pretrain_epochs (int): The number of pre-training epochs.
|
| 14 |
+
num_labels (autofill): The output dimension.
|
| 15 |
+
freeze_bert_parameters (binary): Whether to freeze all parameters but the last layer.
|
| 16 |
+
feat_dim (int): The feature dimension.
|
| 17 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 18 |
+
lr_pre (float): The learning rate for pre-training the backbone.
|
| 19 |
+
lr (float): The learning rate for training the backbone.
|
| 20 |
+
loss_fct (str): The loss function for training.
|
| 21 |
+
activation (str): The activation function of the hidden layer (support 'relu' and 'tanh').
|
| 22 |
+
train_batch_size (int): The batch size for training.
|
| 23 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 24 |
+
test_batch_size (int): The batch size for testing.
|
| 25 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 26 |
+
"""
|
| 27 |
+
hyper_parameters = {
|
| 28 |
+
|
| 29 |
+
'pretrained_bert_model': '/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/',
|
| 30 |
+
'max_seq_length': None,
|
| 31 |
+
'num_pretrain_epochs': 100,
|
| 32 |
+
'num_train_epochs': 100,
|
| 33 |
+
'update_per_epoch' : 5,
|
| 34 |
+
'num_labels': None,
|
| 35 |
+
'freeze_backbone_parameters': False,
|
| 36 |
+
'feat_dim': 768,
|
| 37 |
+
'warmup_proportion': 0.1,
|
| 38 |
+
'lr_pre': 5e-5,
|
| 39 |
+
'lr': 1e-5,
|
| 40 |
+
'activation': 'tanh',
|
| 41 |
+
'train_batch_size': 128,
|
| 42 |
+
'pretrain_batch_size': 64,
|
| 43 |
+
'eval_batch_size': 64,
|
| 44 |
+
'test_batch_size': 64,
|
| 45 |
+
'wait_patient': 10,
|
| 46 |
+
'grad_clip': 1,
|
| 47 |
+
'nuu': 0.1,
|
| 48 |
+
'k': 'rbf',
|
| 49 |
+
'use_cls': False
|
| 50 |
+
}
|
| 51 |
+
|
| 52 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/MSP.py
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
bert_model (directory): The path for the pre-trained bert model.
|
| 11 |
+
num_train_epochs (int): The number of training epochs.
|
| 12 |
+
num_labels (autofill): The output dimension.
|
| 13 |
+
max_seq_length (autofill): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 14 |
+
freeze_backbone_parameters (binary): Whether to freeze all parameters but the last layer.
|
| 15 |
+
feat_dim (int): The feature dimension.
|
| 16 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 17 |
+
lr (float): The learning rate of backbone.
|
| 18 |
+
activation (str): The activation function of the hidden layer (support 'relu' and 'tanh').
|
| 19 |
+
threshold (float): The probability threshold for detecting the open samples.
|
| 20 |
+
train_batch_size (int): The batch size for training.
|
| 21 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 22 |
+
test_batch_size (int): The batch size for testing.
|
| 23 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 24 |
+
"""
|
| 25 |
+
hyper_parameters = {
|
| 26 |
+
|
| 27 |
+
'bert_model': "/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/",
|
| 28 |
+
'num_train_epochs': 100,
|
| 29 |
+
'num_labels': None,
|
| 30 |
+
'max_seq_length': None,
|
| 31 |
+
'freeze_backbone_parameters': True,
|
| 32 |
+
'feat_dim': 768,
|
| 33 |
+
'warmup_proportion': 0.1,
|
| 34 |
+
'lr': 2e-5,
|
| 35 |
+
'activation': 'tanh',
|
| 36 |
+
'threshold': 0.5,
|
| 37 |
+
'train_batch_size': 128,
|
| 38 |
+
'eval_batch_size': 64,
|
| 39 |
+
'test_batch_size': 64,
|
| 40 |
+
'wait_patient': 15
|
| 41 |
+
|
| 42 |
+
}
|
| 43 |
+
if args.dataset == 'stackoverflow':
|
| 44 |
+
hyper_parameters['lr'] = 5e-5
|
| 45 |
+
hyper_parameters['wait_patient'] = 20
|
| 46 |
+
|
| 47 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/OpenMax.py
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
bert_model (directory): The path for the pre-trained bert model.
|
| 11 |
+
num_train_epochs (int): The number of training epochs.
|
| 12 |
+
num_labels (autofill): The output dimension.
|
| 13 |
+
max_seq_length (autofill): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 14 |
+
freeze_backbone_parameters (binary): Whether to freeze all parameters but the last layer.
|
| 15 |
+
feat_dim (int): The feature dimension.
|
| 16 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 17 |
+
lr (float): The learning rate of backbone.
|
| 18 |
+
activation (str): The activation function of the hidden layer (support 'relu' and 'tanh').
|
| 19 |
+
weibull_tail_size (int): The factor of weibull model.
|
| 20 |
+
alpharank (int): The factor of alpha rank.
|
| 21 |
+
distance_type (str): The distance_type.
|
| 22 |
+
threshold (float): The probability threshold for detecting the open samples.
|
| 23 |
+
train_batch_size (int): The batch size for training.
|
| 24 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 25 |
+
test_batch_size (int): The batch size for testing.
|
| 26 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 27 |
+
"""
|
| 28 |
+
hyper_parameters = {
|
| 29 |
+
|
| 30 |
+
'bert_model': "/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/",
|
| 31 |
+
'num_train_epochs': 100,
|
| 32 |
+
'num_labels': None,
|
| 33 |
+
'max_seq_length': None,
|
| 34 |
+
'freeze_backbone_parameters': True,
|
| 35 |
+
'feat_dim': 768,
|
| 36 |
+
'warmup_proportion': 0.1,
|
| 37 |
+
'lr': 2e-5,
|
| 38 |
+
'activation': 'tanh',
|
| 39 |
+
'weibull_tail_size': 20,
|
| 40 |
+
'alpharank': 10,
|
| 41 |
+
'distance_type': 'cosine',
|
| 42 |
+
'threshold': 0.5,
|
| 43 |
+
'train_batch_size': 128,
|
| 44 |
+
'eval_batch_size': 64,
|
| 45 |
+
'test_batch_size': 64,
|
| 46 |
+
'wait_patient': 15
|
| 47 |
+
|
| 48 |
+
}
|
| 49 |
+
|
| 50 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/SEG.py
ADDED
|
@@ -0,0 +1,47 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
class Param():
|
| 2 |
+
|
| 3 |
+
def __init__(self, args):
|
| 4 |
+
|
| 5 |
+
self.hyper_param = self.get_hyper_parameters(args)
|
| 6 |
+
|
| 7 |
+
def get_hyper_parameters(self, args):
|
| 8 |
+
"""
|
| 9 |
+
Args:
|
| 10 |
+
bert_model (directory): The path for the pre-trained bert model.
|
| 11 |
+
num_train_epochs: The training epochs.
|
| 12 |
+
max_seq_len (int): The maximum total input sequence length after tokenization. Sequences longer than this will be truncated, sequences shorter will be padded.
|
| 13 |
+
feat_dim (int): The feature dimension.
|
| 14 |
+
warmup_proportion (float): The warmup ratio for learning rate.
|
| 15 |
+
lr (float): The learning rate of backbone.
|
| 16 |
+
loss_fct (str): The loss function for training.
|
| 17 |
+
n_neighbors (int): The number of neighbors of LOF.
|
| 18 |
+
contamination (float): The contamination factor of LOF.
|
| 19 |
+
train_batch_size (int): The batch size for training.
|
| 20 |
+
eval_batch_size (int): The batch size for evaluation.
|
| 21 |
+
wait_patient (int): Patient steps for Early Stop.
|
| 22 |
+
"""
|
| 23 |
+
hyper_parameters = {
|
| 24 |
+
|
| 25 |
+
'bert_model': "/home/sharing/disk1/pretrained_embedding/bert/uncased_L-12_H-768_A-12/",
|
| 26 |
+
'num_train_epochs': 100,
|
| 27 |
+
'max_seq_length': None,
|
| 28 |
+
'freeze_backbone_parameters': True,
|
| 29 |
+
'feat_dim': 768,
|
| 30 |
+
'warmup_proportion': 0.1,
|
| 31 |
+
'lr': 2e-5,
|
| 32 |
+
'activation': 'relu',
|
| 33 |
+
'n_neighbors': 20,
|
| 34 |
+
'contamination': 0.05,
|
| 35 |
+
'train_batch_size': 128,
|
| 36 |
+
'eval_batch_size': 64,
|
| 37 |
+
'test_batch_size': 64,
|
| 38 |
+
'wait_patient': 10,
|
| 39 |
+
'class_emb': True,
|
| 40 |
+
'alpha': 1.0,
|
| 41 |
+
'lambda_': 0.5
|
| 42 |
+
|
| 43 |
+
}
|
| 44 |
+
# if args.dataset == 'stackoverflow':
|
| 45 |
+
# hyper_parameters['class_emb'] = False
|
| 46 |
+
|
| 47 |
+
return hyper_parameters
|
TEXTOIR-main/open_intent_detection/configs/__init__.py
ADDED
|
File without changes
|
TEXTOIR-main/open_intent_detection/configs/base.py
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import argparse
|
| 2 |
+
import sys
|
| 3 |
+
import os
|
| 4 |
+
import importlib
|
| 5 |
+
from easydict import EasyDict
|
| 6 |
+
|
| 7 |
+
class ParamManager:
|
| 8 |
+
|
| 9 |
+
def __init__(self, args):
|
| 10 |
+
|
| 11 |
+
output_path_param = self.add_output_path_param(args)
|
| 12 |
+
|
| 13 |
+
method_param = self.get_method_param(args)
|
| 14 |
+
|
| 15 |
+
self.args = EasyDict(
|
| 16 |
+
dict(
|
| 17 |
+
vars(args),
|
| 18 |
+
**output_path_param,
|
| 19 |
+
**method_param
|
| 20 |
+
)
|
| 21 |
+
)
|
| 22 |
+
|
| 23 |
+
def get_method_param(self, args):
|
| 24 |
+
|
| 25 |
+
if args.config_file_name.endswith('.py'):
|
| 26 |
+
module_name = '.' + args.config_file_name[:-3]
|
| 27 |
+
else:
|
| 28 |
+
module_name = '.' + args.config_file_name
|
| 29 |
+
|
| 30 |
+
config = importlib.import_module(module_name, 'configs')
|
| 31 |
+
|
| 32 |
+
method_param = config.Param
|
| 33 |
+
method_args = method_param(args)
|
| 34 |
+
|
| 35 |
+
return method_args.hyper_param
|
| 36 |
+
|
| 37 |
+
def add_output_path_param(self, args):
|
| 38 |
+
|
| 39 |
+
|
| 40 |
+
task_output_dir = os.path.join(args.output_dir, args.type)
|
| 41 |
+
if not os.path.exists(task_output_dir):
|
| 42 |
+
os.makedirs(task_output_dir)
|
| 43 |
+
|
| 44 |
+
concat_names = [args.method, args.dataset, args.known_cls_ratio, args.labeled_ratio, args.backbone, args.seed]
|
| 45 |
+
method_output_name = "_".join([str(x) for x in concat_names])
|
| 46 |
+
|
| 47 |
+
method_output_dir = os.path.join(task_output_dir, method_output_name)
|
| 48 |
+
if not os.path.exists(method_output_dir):
|
| 49 |
+
os.makedirs(method_output_dir)
|
| 50 |
+
|
| 51 |
+
model_output_dir = os.path.join(method_output_dir, args.model_dir)
|
| 52 |
+
if not os.path.exists(model_output_dir):
|
| 53 |
+
os.makedirs(model_output_dir)
|
| 54 |
+
|
| 55 |
+
output_path_param = {
|
| 56 |
+
'method_output_dir': method_output_dir,
|
| 57 |
+
'model_output_dir': model_output_dir
|
| 58 |
+
}
|
| 59 |
+
|
| 60 |
+
return output_path_param
|
TEXTOIR-main/open_intent_detection/dataloaders/__init__.py
ADDED
|
@@ -0,0 +1,89 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from .bert_loader import BERT_Loader
|
| 2 |
+
from .llama_loader import LLAMA_Loader
|
| 3 |
+
|
| 4 |
+
max_seq_lengths = {
|
| 5 |
+
'stackoverflow':45,
|
| 6 |
+
'banking':55,
|
| 7 |
+
'oos':30,
|
| 8 |
+
'snips':35
|
| 9 |
+
}
|
| 10 |
+
|
| 11 |
+
|
| 12 |
+
backbone_loader_map = {
|
| 13 |
+
'bert': BERT_Loader,
|
| 14 |
+
'bert_doc': BERT_Loader,
|
| 15 |
+
'bert_norm': BERT_Loader,
|
| 16 |
+
'bert_K+1-way': BERT_Loader,
|
| 17 |
+
'bert_seg': BERT_Loader,
|
| 18 |
+
'bert_disaware': BERT_Loader,
|
| 19 |
+
'bert_mdf': BERT_Loader,
|
| 20 |
+
'bert_knncl': BERT_Loader,
|
| 21 |
+
'llama_disaware': LLAMA_Loader,
|
| 22 |
+
}
|
| 23 |
+
|
| 24 |
+
benchmark_labels = {
|
| 25 |
+
'oos':
|
| 26 |
+
['accept_reservations', 'account_blocked', 'alarm', 'application_status', 'apr',
|
| 27 |
+
'are_you_a_bot', 'balance', 'bill_balance', 'bill_due', 'book_flight',
|
| 28 |
+
'book_hotel', 'calculator', 'calendar', 'calendar_update', 'calories',
|
| 29 |
+
'cancel', 'cancel_reservation', 'car_rental', 'card_declined', 'carry_on',
|
| 30 |
+
'change_accent', 'change_ai_name', 'change_language', 'change_speed', 'change_user_name',
|
| 31 |
+
'change_volume', 'confirm_reservation', 'cook_time', 'credit_limit', 'credit_limit_change',
|
| 32 |
+
'credit_score', 'current_location', 'damaged_card', 'date', 'definition',
|
| 33 |
+
'direct_deposit', 'directions', 'distance', 'do_you_have_pets', 'exchange_rate',
|
| 34 |
+
'expiration_date', 'find_phone', 'flight_status', 'flip_coin', 'food_last',
|
| 35 |
+
'freeze_account', 'fun_fact', 'gas', 'gas_type', 'goodbye',
|
| 36 |
+
'greeting', 'how_busy', 'how_old_are_you', 'improve_credit_score', 'income',
|
| 37 |
+
'ingredient_substitution', 'ingredients_list', 'insurance', 'insurance_change', 'interest_rate',
|
| 38 |
+
'international_fees', 'international_visa', 'jump_start', 'last_maintenance', 'lost_luggage', 'make_call',
|
| 39 |
+
'maybe', 'meal_suggestion', 'meaning_of_life', 'measurement_conversion', 'meeting_schedule',
|
| 40 |
+
'min_payment', 'mpg', 'new_card', 'next_holiday', 'next_song',
|
| 41 |
+
'no', 'nutrition_info', 'oil_change_how', 'oil_change_when', 'order',
|
| 42 |
+
'order_checks', 'order_status', 'pay_bill', 'payday', 'pin_change',
|
| 43 |
+
'play_music', 'plug_type', 'pto_balance', 'pto_request', 'pto_request_status',
|
| 44 |
+
'pto_used', 'recipe', 'redeem_rewards', 'reminder', 'reminder_update',
|
| 45 |
+
'repeat', 'replacement_card_duration', 'report_fraud', 'report_lost_card', 'reset_settings',
|
| 46 |
+
'restaurant_reservation', 'restaurant_reviews', 'restaurant_suggestion', 'rewards_balance', 'roll_dice',
|
| 47 |
+
'rollover_401k', 'routing', 'schedule_maintenance', 'schedule_meeting', 'share_location',
|
| 48 |
+
'shopping_list', 'shopping_list_update', 'smart_home', 'spelling', 'spending_history',
|
| 49 |
+
'sync_device', 'taxes', 'tell_joke', 'text', 'thank_you',
|
| 50 |
+
'time', 'timer', 'timezone', 'tire_change', 'tire_pressure',
|
| 51 |
+
'todo_list', 'todo_list_update', 'traffic', "transactions", "transfer",
|
| 52 |
+
"translate", "travel_alert", "travel_notification", "travel_suggestion", "uber",
|
| 53 |
+
"update_playlist", "user_name", "vaccines", "w2", "weather",
|
| 54 |
+
"what_are_your_hobbies", "what_can_i_ask_you", "what_is_your_name", "what_song", "where_are_you_from",
|
| 55 |
+
"whisper_mode", "who_do_you_work_for", "who_made_you", "yes"],
|
| 56 |
+
|
| 57 |
+
'banking':
|
| 58 |
+
[
|
| 59 |
+
"Refund_not_showing_up", "activate_my_card", "age_limit", "apple_pay_or_google_pay", "atm_support",
|
| 60 |
+
"automatic_top_up", "balance_not_updated_after_bank_transfer", "balance_not_updated_after_cheque_or_cash_deposit", "beneficiary_not_allowed", "cancel_transfer",
|
| 61 |
+
"card_about_to_expire", "card_acceptance", "card_arrival", "card_delivery_estimate", "card_linking",
|
| 62 |
+
"card_not_working", "card_payment_fee_charged", "card_payment_not_recognised", "card_payment_wrong_exchange_rate", "card_swallowed",
|
| 63 |
+
"cash_withdrawal_charge", "cash_withdrawal_not_recognised", "change_pin", "compromised_card", "contactless_not_working",
|
| 64 |
+
"country_support", "declined_card_payment", "declined_cash_withdrawal", "declined_transfer", "direct_debit_payment_not_recognised",
|
| 65 |
+
"disposable_card_limits", "edit_personal_details", "exchange_charge", "exchange_rate", "exchange_via_app",
|
| 66 |
+
"extra_charge_on_statement", "failed_transfer", "fiat_currency_support", "get_disposable_virtual_card", "get_physical_card",
|
| 67 |
+
"getting_spare_card", "getting_virtual_card", "lost_or_stolen_card", "lost_or_stolen_phone", "order_physical_card",
|
| 68 |
+
"passcode_forgotten", "pending_card_payment", "pending_cash_withdrawal", "pending_top_up", "pending_transfer",
|
| 69 |
+
"pin_blocked", "receiving_money", "request_refund", "reverted_card_payment?", "supported_cards_and_currencies",
|
| 70 |
+
"terminate_account", "top_up_by_bank_transfer_charge", "top_up_by_card_charge", "top_up_by_cash_or_cheque", "top_up_failed",
|
| 71 |
+
"top_up_limits", "top_up_reverted", "topping_up_by_card", "transaction_charged_twice", "transfer_fee_charged",
|
| 72 |
+
"transfer_into_account", "transfer_not_received_by_recipient", "transfer_timing", "unable_to_verify_identity", "verify_my_identity",
|
| 73 |
+
"verify_source_of_funds", "verify_top_up", "virtual_card_not_working", "visa_or_mastercard", "why_verify_identity",
|
| 74 |
+
"wrong_amount_of_cash_received", "wrong_exchange_rate_for_cash_withdrawal"
|
| 75 |
+
],
|
| 76 |
+
|
| 77 |
+
'stackoverflow':
|
| 78 |
+
[
|
| 79 |
+
"ajax", "apache", "bash", "cocoa", "drupal",
|
| 80 |
+
"excel", "haskell", "hibernate", "linq", "magento",
|
| 81 |
+
"matlab", "oracle", "osx", "qt", "scala",
|
| 82 |
+
"sharepoint", "spring", "svn", "visual-studio", "wordpress"
|
| 83 |
+
],
|
| 84 |
+
'snips':
|
| 85 |
+
[
|
| 86 |
+
"AddToPlaylist", "BookRestaurant", "GetWeather", "PlayMusic", "RateBook",
|
| 87 |
+
"SearchCreativeWork", "SearchScreeningEvent"
|
| 88 |
+
]
|
| 89 |
+
}
|
TEXTOIR-main/open_intent_detection/dataloaders/base.py
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
import os
|
| 3 |
+
import random
|
| 4 |
+
import torch
|
| 5 |
+
import logging
|
| 6 |
+
|
| 7 |
+
from .__init__ import max_seq_lengths, backbone_loader_map, benchmark_labels
|
| 8 |
+
|
| 9 |
+
|
| 10 |
+
def set_seed(seed):
|
| 11 |
+
random.seed(seed)
|
| 12 |
+
np.random.seed(seed)
|
| 13 |
+
torch.manual_seed(seed)
|
| 14 |
+
torch.cuda.manual_seed_all(seed)
|
| 15 |
+
torch.backends.cudnn.deterministic = True
|
| 16 |
+
|
| 17 |
+
class DataManager:
|
| 18 |
+
|
| 19 |
+
def __init__(self, args, logger_name = 'Detection'):
|
| 20 |
+
|
| 21 |
+
self.logger = logging.getLogger(logger_name)
|
| 22 |
+
|
| 23 |
+
set_seed(args.seed)
|
| 24 |
+
args.max_seq_length = max_seq_lengths[args.dataset]
|
| 25 |
+
self.data_dir = os.path.join(args.data_dir, args.dataset)
|
| 26 |
+
|
| 27 |
+
self.all_label_list = self.get_labels(args.dataset)
|
| 28 |
+
self.n_known_cls = round(len(self.all_label_list) * args.known_cls_ratio)
|
| 29 |
+
self.known_label_list = np.random.choice(np.array(self.all_label_list), self.n_known_cls, replace=False)
|
| 30 |
+
self.known_label_list = list(self.known_label_list)
|
| 31 |
+
|
| 32 |
+
self.logger.info('The number of known intents is %s', self.n_known_cls)
|
| 33 |
+
self.logger.info('Lists of known labels are: %s', str(self.known_label_list))
|
| 34 |
+
|
| 35 |
+
args.num_labels = self.num_labels = len(self.known_label_list)
|
| 36 |
+
|
| 37 |
+
if args.dataset == 'oos':
|
| 38 |
+
self.unseen_label = 'oos'
|
| 39 |
+
else:
|
| 40 |
+
self.unseen_label = '<UNK>'
|
| 41 |
+
|
| 42 |
+
args.unseen_label_id = self.unseen_label_id = self.num_labels
|
| 43 |
+
self.label_list = self.known_label_list + [self.unseen_label]
|
| 44 |
+
|
| 45 |
+
self.anum_labels = args.anum_labels = len(self.label_list)
|
| 46 |
+
self.dataloader = self.get_loader(args, self.get_attrs())
|
| 47 |
+
|
| 48 |
+
def get_labels(self, dataset):
|
| 49 |
+
|
| 50 |
+
labels = benchmark_labels[dataset]
|
| 51 |
+
|
| 52 |
+
return labels
|
| 53 |
+
|
| 54 |
+
def get_loader(self, args, attrs):
|
| 55 |
+
|
| 56 |
+
dataloader = backbone_loader_map[args.backbone](args, attrs, args.logger_name)
|
| 57 |
+
|
| 58 |
+
return dataloader
|
| 59 |
+
|
| 60 |
+
def get_attrs(self):
|
| 61 |
+
|
| 62 |
+
attrs = {}
|
| 63 |
+
for name, value in vars(self).items():
|
| 64 |
+
attrs[name] = value
|
| 65 |
+
|
| 66 |
+
return attrs
|
TEXTOIR-main/open_intent_detection/dataloaders/bert_loader.py
ADDED
|
@@ -0,0 +1,285 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
import torch
|
| 3 |
+
import os
|
| 4 |
+
import csv
|
| 5 |
+
import sys
|
| 6 |
+
import logging
|
| 7 |
+
from transformers import BertTokenizer
|
| 8 |
+
from torch.utils.data import (DataLoader, RandomSampler, SequentialSampler, TensorDataset)
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
class BERT_Loader:
|
| 12 |
+
def __init__(self, args, base_attrs, logger_name = 'Detection'):
|
| 13 |
+
self.logger = logging.getLogger(logger_name)
|
| 14 |
+
self.train_examples, self.train_labeled_examples, self.train_unlabeled_examples = get_examples(args, base_attrs, 'train')
|
| 15 |
+
self.logger.info("Number of labeled training samples = %s", str(len(self.train_labeled_examples)))
|
| 16 |
+
self.logger.info("Number of unlabeled training samples = %s", str(len(self.train_unlabeled_examples)))
|
| 17 |
+
|
| 18 |
+
self.eval_examples = get_examples(args, base_attrs, 'eval')
|
| 19 |
+
self.logger.info("Number of evaluation samples = %s", str(len(self.eval_examples)))
|
| 20 |
+
|
| 21 |
+
self.test_examples = get_examples(args, base_attrs, 'test')
|
| 22 |
+
self.logger.info("Number of testing samples = %s", str(len(self.test_examples)))
|
| 23 |
+
self.base_attrs = base_attrs
|
| 24 |
+
self.init_loader(args)
|
| 25 |
+
|
| 26 |
+
def init_loader(self, args):
|
| 27 |
+
|
| 28 |
+
self.train_labeled_loader = get_loader(self.train_labeled_examples, args, self.base_attrs['label_list'], 'train_labeled', sampler_mode = 'random')
|
| 29 |
+
self.train_unlabeled_loader = get_loader(self.train_unlabeled_examples, args, self.base_attrs['label_list'], 'train_unlabeled', sampler_mode = 'sequential')
|
| 30 |
+
self.eval_loader = get_loader(self.eval_examples, args, self.base_attrs['label_list'], 'eval', sampler_mode = 'sequential')
|
| 31 |
+
self.test_loader = get_loader(self.test_examples, args, self.base_attrs['label_list'], 'test', sampler_mode = 'sequential')
|
| 32 |
+
self.num_train_examples = len(self.train_labeled_examples)
|
| 33 |
+
|
| 34 |
+
def get_examples(args, base_attrs, mode):
|
| 35 |
+
|
| 36 |
+
processor = DatasetProcessor()
|
| 37 |
+
ori_examples = processor.get_examples(base_attrs['data_dir'], mode)
|
| 38 |
+
if mode == 'train':
|
| 39 |
+
|
| 40 |
+
labeled_examples, unlabeled_examples = [], []
|
| 41 |
+
for example in ori_examples:
|
| 42 |
+
|
| 43 |
+
if (example.label in base_attrs['known_label_list']) and (np.random.uniform(0, 1) <= args.labeled_ratio):
|
| 44 |
+
labeled_examples.append(example)
|
| 45 |
+
else:
|
| 46 |
+
example.label = base_attrs['unseen_label']
|
| 47 |
+
unlabeled_examples.append(example)
|
| 48 |
+
|
| 49 |
+
return ori_examples, labeled_examples, unlabeled_examples
|
| 50 |
+
|
| 51 |
+
elif mode == 'eval':
|
| 52 |
+
|
| 53 |
+
examples = []
|
| 54 |
+
for example in ori_examples:
|
| 55 |
+
if (example.label in base_attrs['known_label_list']):
|
| 56 |
+
examples.append(example)
|
| 57 |
+
|
| 58 |
+
return examples
|
| 59 |
+
|
| 60 |
+
elif mode == 'test':
|
| 61 |
+
|
| 62 |
+
examples = []
|
| 63 |
+
for example in ori_examples:
|
| 64 |
+
if (example.label in base_attrs['label_list']) and (example.label != base_attrs['unseen_label']):
|
| 65 |
+
examples.append(example)
|
| 66 |
+
else:
|
| 67 |
+
example.label = base_attrs['unseen_label']
|
| 68 |
+
examples.append(example)
|
| 69 |
+
|
| 70 |
+
return examples
|
| 71 |
+
|
| 72 |
+
def get_loader(examples, args, label_list, mode, sampler_mode = 'sequential'):
|
| 73 |
+
|
| 74 |
+
tokenizer = BertTokenizer.from_pretrained(args.bert_model, do_lower_case=True)
|
| 75 |
+
features = convert_examples_to_features(examples, label_list, args.max_seq_length, tokenizer)
|
| 76 |
+
input_ids = torch.tensor([f.input_ids for f in features], dtype=torch.long)
|
| 77 |
+
input_mask = torch.tensor([f.input_mask for f in features], dtype=torch.long)
|
| 78 |
+
segment_ids = torch.tensor([f.segment_ids for f in features], dtype=torch.long)
|
| 79 |
+
|
| 80 |
+
if mode == 'train_unlabeled':
|
| 81 |
+
label_ids = torch.tensor([-1 for f in features], dtype=torch.long)
|
| 82 |
+
else:
|
| 83 |
+
label_ids = torch.tensor([f.label_id for f in features], dtype=torch.long)
|
| 84 |
+
datatensor = TensorDataset(input_ids, input_mask, segment_ids, label_ids)
|
| 85 |
+
|
| 86 |
+
if sampler_mode == 'random':
|
| 87 |
+
sampler = RandomSampler(datatensor)
|
| 88 |
+
elif sampler_mode == 'sequential':
|
| 89 |
+
sampler = SequentialSampler(datatensor)
|
| 90 |
+
|
| 91 |
+
if mode == 'train_labeled':
|
| 92 |
+
dataloader = DataLoader(datatensor, sampler = sampler, batch_size = args.train_batch_size)
|
| 93 |
+
|
| 94 |
+
else:
|
| 95 |
+
if mode == 'train_unlabeled':
|
| 96 |
+
dataloader = DataLoader(datatensor, sampler=sampler, batch_size = args.train_batch_size)
|
| 97 |
+
elif mode == 'eval':
|
| 98 |
+
dataloader = DataLoader(datatensor, sampler=sampler, batch_size = args.eval_batch_size)
|
| 99 |
+
elif mode == 'test':
|
| 100 |
+
dataloader = DataLoader(datatensor, sampler=sampler, batch_size = args.test_batch_size)
|
| 101 |
+
|
| 102 |
+
return dataloader
|
| 103 |
+
|
| 104 |
+
class InputExample(object):
|
| 105 |
+
"""A single training/test example for simple sequence classification."""
|
| 106 |
+
|
| 107 |
+
def __init__(self, guid, text_a, text_b=None, label=None):
|
| 108 |
+
"""Constructs a InputExample.
|
| 109 |
+
|
| 110 |
+
Args:
|
| 111 |
+
guid: Unique id for the example.
|
| 112 |
+
text_a: string. The untokenized text of the first sequence. For single
|
| 113 |
+
sequence tasks, only this sequence must be specified.
|
| 114 |
+
text_b: (Optional) string. The untokenized text of the second sequence.
|
| 115 |
+
Only must be specified for sequence pair tasks.
|
| 116 |
+
label: (Optional) string. The label of the example. This should be
|
| 117 |
+
specified for train and dev examples, but not for test examples.
|
| 118 |
+
"""
|
| 119 |
+
self.guid = guid
|
| 120 |
+
self.text_a = text_a
|
| 121 |
+
self.text_b = text_b
|
| 122 |
+
self.label = label
|
| 123 |
+
|
| 124 |
+
class InputFeatures(object):
|
| 125 |
+
"""A single set of features of data."""
|
| 126 |
+
|
| 127 |
+
def __init__(self, input_ids, input_mask, segment_ids, label_id):
|
| 128 |
+
self.input_ids = input_ids
|
| 129 |
+
self.input_mask = input_mask
|
| 130 |
+
self.segment_ids = segment_ids
|
| 131 |
+
self.label_id = label_id
|
| 132 |
+
|
| 133 |
+
class DataProcessor(object):
|
| 134 |
+
"""Base class for data converters for sequence classification data sets."""
|
| 135 |
+
|
| 136 |
+
def get_train_examples(self, data_dir):
|
| 137 |
+
"""Gets a collection of `InputExample`s for the train set."""
|
| 138 |
+
raise NotImplementedError()
|
| 139 |
+
|
| 140 |
+
def get_dev_examples(self, data_dir):
|
| 141 |
+
"""Gets a collection of `InputExample`s for the dev set."""
|
| 142 |
+
raise NotImplementedError()
|
| 143 |
+
|
| 144 |
+
def get_labels(self):
|
| 145 |
+
"""Gets the list of labels for this data set."""
|
| 146 |
+
raise NotImplementedError()
|
| 147 |
+
|
| 148 |
+
@classmethod
|
| 149 |
+
def _read_tsv(cls, input_file, quotechar=None):
|
| 150 |
+
"""Reads a tab separated value file."""
|
| 151 |
+
with open(input_file, "r") as f:
|
| 152 |
+
reader = csv.reader(f, delimiter="\t", quotechar=quotechar)
|
| 153 |
+
lines = []
|
| 154 |
+
for line in reader:
|
| 155 |
+
if sys.version_info[0] == 2:
|
| 156 |
+
line = list(unicode(cell, 'utf-8') for cell in line)
|
| 157 |
+
lines.append(line)
|
| 158 |
+
return lines
|
| 159 |
+
|
| 160 |
+
class DatasetProcessor(DataProcessor):
|
| 161 |
+
|
| 162 |
+
def get_examples(self, data_dir, mode):
|
| 163 |
+
if mode == 'train':
|
| 164 |
+
return self._create_examples(
|
| 165 |
+
self._read_tsv(os.path.join(data_dir, "train.tsv")), "train")
|
| 166 |
+
elif mode == 'eval':
|
| 167 |
+
return self._create_examples(
|
| 168 |
+
self._read_tsv(os.path.join(data_dir, "dev.tsv")), "train")
|
| 169 |
+
elif mode == 'test':
|
| 170 |
+
return self._create_examples(
|
| 171 |
+
self._read_tsv(os.path.join(data_dir, "test.tsv")), "test")
|
| 172 |
+
|
| 173 |
+
def _create_examples(self, lines, set_type):
|
| 174 |
+
"""Creates examples for the training and dev sets."""
|
| 175 |
+
examples = []
|
| 176 |
+
for (i, line) in enumerate(lines):
|
| 177 |
+
if i == 0:
|
| 178 |
+
continue
|
| 179 |
+
if len(line) != 2:
|
| 180 |
+
continue
|
| 181 |
+
guid = "%s-%s" % (set_type, i)
|
| 182 |
+
text_a = line[0]
|
| 183 |
+
label = line[1]
|
| 184 |
+
|
| 185 |
+
examples.append(
|
| 186 |
+
InputExample(guid=guid, text_a=text_a, text_b=None, label=label))
|
| 187 |
+
return examples
|
| 188 |
+
|
| 189 |
+
def convert_examples_to_features(examples, label_list, max_seq_length, tokenizer):
|
| 190 |
+
"""Loads a data file into a list of `InputBatch`s."""
|
| 191 |
+
label_map = {}
|
| 192 |
+
if label_list is not None:
|
| 193 |
+
for i, label in enumerate(label_list):
|
| 194 |
+
label_map[label] = i
|
| 195 |
+
|
| 196 |
+
features = []
|
| 197 |
+
for (ex_index, example) in enumerate(examples):
|
| 198 |
+
tokens_a = tokenizer.tokenize(example.text_a)
|
| 199 |
+
|
| 200 |
+
tokens_b = None
|
| 201 |
+
if example.text_b:
|
| 202 |
+
tokens_b = tokenizer.tokenize(example.text_b)
|
| 203 |
+
# Modifies `tokens_a` and `tokens_b` in place so that the total
|
| 204 |
+
# length is less than the specified length.
|
| 205 |
+
# Account for [CLS], [SEP], [SEP] with "- 3"
|
| 206 |
+
_truncate_seq_pair(tokens_a, tokens_b, max_seq_length - 3)
|
| 207 |
+
else:
|
| 208 |
+
# Account for [CLS] and [SEP] with "- 2"
|
| 209 |
+
if len(tokens_a) > max_seq_length - 2:
|
| 210 |
+
tokens_a = tokens_a[:(max_seq_length - 2)]
|
| 211 |
+
|
| 212 |
+
# The convention in BERT is:
|
| 213 |
+
# (a) For sequence pairs:
|
| 214 |
+
# tokens: [CLS] is this jack ##son ##ville ? [SEP] no it is not . [SEP]
|
| 215 |
+
# type_ids: 0 0 0 0 0 0 0 0 1 1 1 1 1 1
|
| 216 |
+
# (b) For single sequences:
|
| 217 |
+
# tokens: [CLS] the dog is hairy . [SEP]
|
| 218 |
+
# type_ids: 0 0 0 0 0 0 0
|
| 219 |
+
#
|
| 220 |
+
# Where "type_ids" are used to indicate whether this is the first
|
| 221 |
+
# sequence or the second sequence. The embedding vectors for `type=0` and
|
| 222 |
+
# `type=1` were learned during pre-training and are added to the wordpiece
|
| 223 |
+
# embedding vector (and position vector). This is not *strictly* necessary
|
| 224 |
+
# since the [SEP] token unambigiously separates the sequences, but it makes
|
| 225 |
+
# it easier for the model to learn the concept of sequences.
|
| 226 |
+
#
|
| 227 |
+
# For classification tasks, the first vector (corresponding to [CLS]) is
|
| 228 |
+
# used as as the "sentence vector". Note that this only makes sense because
|
| 229 |
+
# the entire model is fine-tuned.
|
| 230 |
+
tokens = ["[CLS]"] + tokens_a + ["[SEP]"]
|
| 231 |
+
segment_ids = [0] * len(tokens)
|
| 232 |
+
|
| 233 |
+
if tokens_b:
|
| 234 |
+
tokens += tokens_b + ["[SEP]"]
|
| 235 |
+
segment_ids += [1] * (len(tokens_b) + 1)
|
| 236 |
+
|
| 237 |
+
input_ids = tokenizer.convert_tokens_to_ids(tokens)
|
| 238 |
+
|
| 239 |
+
# The mask has 1 for real tokens and 0 for padding tokens. Only real
|
| 240 |
+
# tokens are attended to.
|
| 241 |
+
input_mask = [1] * len(input_ids)
|
| 242 |
+
|
| 243 |
+
# Zero-pad up to the sequence length.
|
| 244 |
+
padding = [0] * (max_seq_length - len(input_ids))
|
| 245 |
+
input_ids += padding
|
| 246 |
+
input_mask += padding
|
| 247 |
+
segment_ids += padding
|
| 248 |
+
|
| 249 |
+
assert len(input_ids) == max_seq_length
|
| 250 |
+
assert len(input_mask) == max_seq_length
|
| 251 |
+
assert len(segment_ids) == max_seq_length
|
| 252 |
+
|
| 253 |
+
label_id = label_map[example.label] if label_list is not None else None
|
| 254 |
+
# if ex_index < 5:
|
| 255 |
+
# logger.info("*** Example ***")
|
| 256 |
+
# logger.info("guid: %s" % (example.guid))
|
| 257 |
+
# logger.info("tokens: %s" % " ".join(
|
| 258 |
+
# [str(x) for x in tokens]))
|
| 259 |
+
# logger.info("input_ids: %s" % " ".join([str(x) for x in input_ids]))
|
| 260 |
+
# logger.info("input_mask: %s" % " ".join([str(x) for x in input_mask]))
|
| 261 |
+
# logger.info(
|
| 262 |
+
# "segment_ids: %s" % " ".join([str(x) for x in segment_ids]))
|
| 263 |
+
# logger.info("label: %s (id = %d)" % (example.label, label_id))
|
| 264 |
+
|
| 265 |
+
features.append(
|
| 266 |
+
InputFeatures(input_ids=input_ids,
|
| 267 |
+
input_mask=input_mask,
|
| 268 |
+
segment_ids=segment_ids,
|
| 269 |
+
label_id=label_id))
|
| 270 |
+
return features
|
| 271 |
+
|
| 272 |
+
def _truncate_seq_pair(tokens_a, tokens_b, max_length):
|
| 273 |
+
"""Truncates a sequence pair in place to the maximum length."""
|
| 274 |
+
# This is a simple heuristic which will always truncate the longer sequence
|
| 275 |
+
# one token at a time. This makes more sense than truncating an equal percent
|
| 276 |
+
# of tokens from each, since if one sequence is very short then each token
|
| 277 |
+
# that's truncated likely contains more information than a longer sequence.
|
| 278 |
+
while True:
|
| 279 |
+
total_length = len(tokens_a) + len(tokens_b)
|
| 280 |
+
if total_length <= max_length:
|
| 281 |
+
break
|
| 282 |
+
if len(tokens_a) > len(tokens_b):
|
| 283 |
+
tokens_a.pop(0) # For dialogue context
|
| 284 |
+
else:
|
| 285 |
+
tokens_b.pop()
|
TEXTOIR-main/open_intent_detection/dataloaders/llama_loader.py
ADDED
|
@@ -0,0 +1,289 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import numpy as np
|
| 2 |
+
import torch
|
| 3 |
+
import os
|
| 4 |
+
import csv
|
| 5 |
+
import sys
|
| 6 |
+
import logging
|
| 7 |
+
from transformers import LlamaTokenizer
|
| 8 |
+
from torch.utils.data import (DataLoader, RandomSampler, SequentialSampler, TensorDataset)
|
| 9 |
+
|
| 10 |
+
|
| 11 |
+
class LLAMA_Loader:
|
| 12 |
+
def __init__(self, args, base_attrs, logger_name = 'Detection'):
|
| 13 |
+
self.logger = logging.getLogger(logger_name)
|
| 14 |
+
self.train_examples, self.train_labeled_examples, self.train_unlabeled_examples = get_examples(args, base_attrs, 'train')
|
| 15 |
+
self.logger.info("Number of labeled training samples = %s", str(len(self.train_labeled_examples)))
|
| 16 |
+
self.logger.info("Number of unlabeled training samples = %s", str(len(self.train_unlabeled_examples)))
|
| 17 |
+
|
| 18 |
+
self.eval_examples = get_examples(args, base_attrs, 'eval')
|
| 19 |
+
self.logger.info("Number of evaluation samples = %s", str(len(self.eval_examples)))
|
| 20 |
+
|
| 21 |
+
self.test_examples = get_examples(args, base_attrs, 'test')
|
| 22 |
+
self.logger.info("Number of testing samples = %s", str(len(self.test_examples)))
|
| 23 |
+
self.base_attrs = base_attrs
|
| 24 |
+
self.init_loader(args)
|
| 25 |
+
|
| 26 |
+
def init_loader(self, args):
|
| 27 |
+
|
| 28 |
+
self.train_labeled_loader = get_loader(self.train_labeled_examples, args, self.base_attrs['label_list'], 'train_labeled', sampler_mode = 'random')
|
| 29 |
+
self.train_unlabeled_loader = get_loader(self.train_unlabeled_examples, args, self.base_attrs['label_list'], 'train_unlabeled', sampler_mode = 'sequential')
|
| 30 |
+
self.eval_loader = get_loader(self.eval_examples, args, self.base_attrs['label_list'], 'eval', sampler_mode = 'sequential')
|
| 31 |
+
self.test_loader = get_loader(self.test_examples, args, self.base_attrs['label_list'], 'test', sampler_mode = 'sequential')
|
| 32 |
+
self.num_train_examples = len(self.train_labeled_examples)
|
| 33 |
+
|
| 34 |
+
def get_examples(args, base_attrs, mode):
|
| 35 |
+
|
| 36 |
+
processor = DatasetProcessor()
|
| 37 |
+
ori_examples = processor.get_examples(base_attrs['data_dir'], mode)
|
| 38 |
+
if mode == 'train':
|
| 39 |
+
|
| 40 |
+
labeled_examples, unlabeled_examples = [], []
|
| 41 |
+
for example in ori_examples:
|
| 42 |
+
|
| 43 |
+
if (example.label in base_attrs['known_label_list']) and (np.random.uniform(0, 1) <= args.labeled_ratio):
|
| 44 |
+
labeled_examples.append(example)
|
| 45 |
+
else:
|
| 46 |
+
example.label = base_attrs['unseen_label']
|
| 47 |
+
unlabeled_examples.append(example)
|
| 48 |
+
|
| 49 |
+
return ori_examples, labeled_examples, unlabeled_examples
|
| 50 |
+
|
| 51 |
+
elif mode == 'eval':
|
| 52 |
+
|
| 53 |
+
examples = []
|
| 54 |
+
for example in ori_examples:
|
| 55 |
+
if (example.label in base_attrs['known_label_list']):
|
| 56 |
+
examples.append(example)
|
| 57 |
+
|
| 58 |
+
return examples
|
| 59 |
+
|
| 60 |
+
elif mode == 'test':
|
| 61 |
+
|
| 62 |
+
examples = []
|
| 63 |
+
for example in ori_examples:
|
| 64 |
+
if (example.label in base_attrs['label_list']) and (example.label != base_attrs['unseen_label']):
|
| 65 |
+
examples.append(example)
|
| 66 |
+
else:
|
| 67 |
+
example.label = base_attrs['unseen_label']
|
| 68 |
+
examples.append(example)
|
| 69 |
+
|
| 70 |
+
return examples
|
| 71 |
+
|
| 72 |
+
def get_loader(examples, args, label_list, mode, sampler_mode = 'sequential'):
|
| 73 |
+
tokenizer = LlamaTokenizer.from_pretrained(args.llama_model, do_lower_case=True, legacy=False)
|
| 74 |
+
tokenizer.pad_token_id = (
|
| 75 |
+
0 # unk. we want this to be different from the eos token
|
| 76 |
+
)
|
| 77 |
+
tokenizer.padding_side = "left"
|
| 78 |
+
tokenizer.pad_token = tokenizer.eos_token
|
| 79 |
+
features = convert_examples_to_features(examples, label_list, args.max_seq_length, tokenizer)
|
| 80 |
+
input_ids = torch.tensor([f.input_ids for f in features], dtype=torch.long)
|
| 81 |
+
input_mask = torch.tensor([f.input_mask for f in features], dtype=torch.long)
|
| 82 |
+
segment_ids = torch.tensor([f.segment_ids for f in features], dtype=torch.long)
|
| 83 |
+
|
| 84 |
+
if mode == 'train_unlabeled':
|
| 85 |
+
label_ids = torch.tensor([-1 for f in features], dtype=torch.long)
|
| 86 |
+
else:
|
| 87 |
+
label_ids = torch.tensor([f.label_id for f in features], dtype=torch.long)
|
| 88 |
+
datatensor = TensorDataset(input_ids, input_mask, segment_ids, label_ids)
|
| 89 |
+
|
| 90 |
+
if sampler_mode == 'random':
|
| 91 |
+
sampler = RandomSampler(datatensor)
|
| 92 |
+
elif sampler_mode == 'sequential':
|
| 93 |
+
sampler = SequentialSampler(datatensor)
|
| 94 |
+
|
| 95 |
+
if mode == 'train_labeled':
|
| 96 |
+
dataloader = DataLoader(datatensor, sampler = sampler, batch_size = args.train_batch_size)
|
| 97 |
+
|
| 98 |
+
else:
|
| 99 |
+
if mode == 'train_unlabeled':
|
| 100 |
+
dataloader = DataLoader(datatensor, sampler=sampler, batch_size = args.train_batch_size)
|
| 101 |
+
elif mode == 'eval':
|
| 102 |
+
dataloader = DataLoader(datatensor, sampler=sampler, batch_size = args.eval_batch_size)
|
| 103 |
+
elif mode == 'test':
|
| 104 |
+
dataloader = DataLoader(datatensor, sampler=sampler, batch_size = args.test_batch_size)
|
| 105 |
+
|
| 106 |
+
return dataloader
|
| 107 |
+
|
| 108 |
+
class InputExample(object):
|
| 109 |
+
"""A single training/test example for simple sequence classification."""
|
| 110 |
+
|
| 111 |
+
def __init__(self, guid, text_a, text_b=None, label=None):
|
| 112 |
+
"""Constructs a InputExample.
|
| 113 |
+
|
| 114 |
+
Args:
|
| 115 |
+
guid: Unique id for the example.
|
| 116 |
+
text_a: string. The untokenized text of the first sequence. For single
|
| 117 |
+
sequence tasks, only this sequence must be specified.
|
| 118 |
+
text_b: (Optional) string. The untokenized text of the second sequence.
|
| 119 |
+
Only must be specified for sequence pair tasks.
|
| 120 |
+
label: (Optional) string. The label of the example. This should be
|
| 121 |
+
specified for train and dev examples, but not for test examples.
|
| 122 |
+
"""
|
| 123 |
+
self.guid = guid
|
| 124 |
+
self.text_a = text_a
|
| 125 |
+
self.text_b = text_b
|
| 126 |
+
self.label = label
|
| 127 |
+
|
| 128 |
+
class InputFeatures(object):
|
| 129 |
+
"""A single set of features of data."""
|
| 130 |
+
|
| 131 |
+
def __init__(self, input_ids, input_mask, segment_ids, label_id):
|
| 132 |
+
self.input_ids = input_ids
|
| 133 |
+
self.input_mask = input_mask
|
| 134 |
+
self.segment_ids = segment_ids
|
| 135 |
+
self.label_id = label_id
|
| 136 |
+
|
| 137 |
+
class DataProcessor(object):
|
| 138 |
+
"""Base class for data converters for sequence classification data sets."""
|
| 139 |
+
|
| 140 |
+
def get_train_examples(self, data_dir):
|
| 141 |
+
"""Gets a collection of `InputExample`s for the train set."""
|
| 142 |
+
raise NotImplementedError()
|
| 143 |
+
|
| 144 |
+
def get_dev_examples(self, data_dir):
|
| 145 |
+
"""Gets a collection of `InputExample`s for the dev set."""
|
| 146 |
+
raise NotImplementedError()
|
| 147 |
+
|
| 148 |
+
def get_labels(self):
|
| 149 |
+
"""Gets the list of labels for this data set."""
|
| 150 |
+
raise NotImplementedError()
|
| 151 |
+
|
| 152 |
+
@classmethod
|
| 153 |
+
def _read_tsv(cls, input_file, quotechar=None):
|
| 154 |
+
"""Reads a tab separated value file."""
|
| 155 |
+
with open(input_file, "r") as f:
|
| 156 |
+
reader = csv.reader(f, delimiter="\t", quotechar=quotechar)
|
| 157 |
+
lines = []
|
| 158 |
+
for line in reader:
|
| 159 |
+
if sys.version_info[0] == 2:
|
| 160 |
+
line = list(unicode(cell, 'utf-8') for cell in line)
|
| 161 |
+
lines.append(line)
|
| 162 |
+
return lines
|
| 163 |
+
|
| 164 |
+
class DatasetProcessor(DataProcessor):
|
| 165 |
+
|
| 166 |
+
def get_examples(self, data_dir, mode):
|
| 167 |
+
if mode == 'train':
|
| 168 |
+
return self._create_examples(
|
| 169 |
+
self._read_tsv(os.path.join(data_dir, "train.tsv")), "train")
|
| 170 |
+
elif mode == 'eval':
|
| 171 |
+
return self._create_examples(
|
| 172 |
+
self._read_tsv(os.path.join(data_dir, "dev.tsv")), "train")
|
| 173 |
+
elif mode == 'test':
|
| 174 |
+
return self._create_examples(
|
| 175 |
+
self._read_tsv(os.path.join(data_dir, "test.tsv")), "test")
|
| 176 |
+
|
| 177 |
+
def _create_examples(self, lines, set_type):
|
| 178 |
+
"""Creates examples for the training and dev sets."""
|
| 179 |
+
examples = []
|
| 180 |
+
for (i, line) in enumerate(lines):
|
| 181 |
+
if i == 0:
|
| 182 |
+
continue
|
| 183 |
+
if len(line) != 2:
|
| 184 |
+
continue
|
| 185 |
+
guid = "%s-%s" % (set_type, i)
|
| 186 |
+
text_a = line[0]
|
| 187 |
+
label = line[1]
|
| 188 |
+
|
| 189 |
+
examples.append(
|
| 190 |
+
InputExample(guid=guid, text_a=text_a, text_b=None, label=label))
|
| 191 |
+
return examples
|
| 192 |
+
|
| 193 |
+
def convert_examples_to_features(examples, label_list, max_seq_length, tokenizer):
|
| 194 |
+
"""Loads a data file into a list of `InputBatch`s."""
|
| 195 |
+
label_map = {}
|
| 196 |
+
if label_list is not None:
|
| 197 |
+
for i, label in enumerate(label_list):
|
| 198 |
+
label_map[label] = i
|
| 199 |
+
|
| 200 |
+
features = []
|
| 201 |
+
for (ex_index, example) in enumerate(examples):
|
| 202 |
+
tokens_a = tokenizer.tokenize(example.text_a)
|
| 203 |
+
|
| 204 |
+
tokens_b = None
|
| 205 |
+
if example.text_b:
|
| 206 |
+
tokens_b = tokenizer.tokenize(example.text_b)
|
| 207 |
+
# Modifies `tokens_a` and `tokens_b` in place so that the total
|
| 208 |
+
# length is less than the specified length.
|
| 209 |
+
# Account for [CLS], [SEP], [SEP] with "- 3"
|
| 210 |
+
_truncate_seq_pair(tokens_a, tokens_b, max_seq_length - 3)
|
| 211 |
+
else:
|
| 212 |
+
# Account for [CLS] and [SEP] with "- 2"
|
| 213 |
+
if len(tokens_a) > max_seq_length - 2:
|
| 214 |
+
tokens_a = tokens_a[:(max_seq_length - 2)]
|
| 215 |
+
|
| 216 |
+
# The convention in BERT is:
|
| 217 |
+
# (a) For sequence pairs:
|
| 218 |
+
# tokens: [CLS] is this jack ##son ##ville ? [SEP] no it is not . [SEP]
|
| 219 |
+
# type_ids: 0 0 0 0 0 0 0 0 1 1 1 1 1 1
|
| 220 |
+
# (b) For single sequences:
|
| 221 |
+
# tokens: [CLS] the dog is hairy . [SEP]
|
| 222 |
+
# type_ids: 0 0 0 0 0 0 0
|
| 223 |
+
#
|
| 224 |
+
# Where "type_ids" are used to indicate whether this is the first
|
| 225 |
+
# sequence or the second sequence. The embedding vectors for `type=0` and
|
| 226 |
+
# `type=1` were learned during pre-training and are added to the wordpiece
|
| 227 |
+
# embedding vector (and position vector). This is not *strictly* necessary
|
| 228 |
+
# since the [SEP] token unambigiously separates the sequences, but it makes
|
| 229 |
+
# it easier for the model to learn the concept of sequences.
|
| 230 |
+
#
|
| 231 |
+
# For classification tasks, the first vector (corresponding to [CLS]) is
|
| 232 |
+
# used as as the "sentence vector". Note that this only makes sense because
|
| 233 |
+
# the entire model is fine-tuned.
|
| 234 |
+
tokens = ["[CLS]"] + tokens_a + ["[SEP]"]
|
| 235 |
+
segment_ids = [0] * len(tokens)
|
| 236 |
+
|
| 237 |
+
if tokens_b:
|
| 238 |
+
tokens += tokens_b + ["[SEP]"]
|
| 239 |
+
segment_ids += [1] * (len(tokens_b) + 1)
|
| 240 |
+
|
| 241 |
+
input_ids = tokenizer.convert_tokens_to_ids(tokens)
|
| 242 |
+
|
| 243 |
+
# The mask has 1 for real tokens and 0 for padding tokens. Only real
|
| 244 |
+
# tokens are attended to.
|
| 245 |
+
input_mask = [1] * len(input_ids)
|
| 246 |
+
|
| 247 |
+
# Zero-pad up to the sequence length.
|
| 248 |
+
padding = [0] * (max_seq_length - len(input_ids))
|
| 249 |
+
input_ids += padding
|
| 250 |
+
input_mask += padding
|
| 251 |
+
segment_ids += padding
|
| 252 |
+
|
| 253 |
+
assert len(input_ids) == max_seq_length
|
| 254 |
+
assert len(input_mask) == max_seq_length
|
| 255 |
+
assert len(segment_ids) == max_seq_length
|
| 256 |
+
|
| 257 |
+
label_id = label_map[example.label] if label_list is not None else None
|
| 258 |
+
# if ex_index < 5:
|
| 259 |
+
# logger.info("*** Example ***")
|
| 260 |
+
# logger.info("guid: %s" % (example.guid))
|
| 261 |
+
# logger.info("tokens: %s" % " ".join(
|
| 262 |
+
# [str(x) for x in tokens]))
|
| 263 |
+
# logger.info("input_ids: %s" % " ".join([str(x) for x in input_ids]))
|
| 264 |
+
# logger.info("input_mask: %s" % " ".join([str(x) for x in input_mask]))
|
| 265 |
+
# logger.info(
|
| 266 |
+
# "segment_ids: %s" % " ".join([str(x) for x in segment_ids]))
|
| 267 |
+
# logger.info("label: %s (id = %d)" % (example.label, label_id))
|
| 268 |
+
|
| 269 |
+
features.append(
|
| 270 |
+
InputFeatures(input_ids=input_ids,
|
| 271 |
+
input_mask=input_mask,
|
| 272 |
+
segment_ids=segment_ids,
|
| 273 |
+
label_id=label_id))
|
| 274 |
+
return features
|
| 275 |
+
|
| 276 |
+
def _truncate_seq_pair(tokens_a, tokens_b, max_length):
|
| 277 |
+
"""Truncates a sequence pair in place to the maximum length."""
|
| 278 |
+
# This is a simple heuristic which will always truncate the longer sequence
|
| 279 |
+
# one token at a time. This makes more sense than truncating an equal percent
|
| 280 |
+
# of tokens from each, since if one sequence is very short then each token
|
| 281 |
+
# that's truncated likely contains more information than a longer sequence.
|
| 282 |
+
while True:
|
| 283 |
+
total_length = len(tokens_a) + len(tokens_b)
|
| 284 |
+
if total_length <= max_length:
|
| 285 |
+
break
|
| 286 |
+
if len(tokens_a) > len(tokens_b):
|
| 287 |
+
tokens_a.pop(0) # For dialogue context
|
| 288 |
+
else:
|
| 289 |
+
tokens_b.pop()
|
TEXTOIR-main/open_intent_detection/examples/run_ADB.sh
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin bash
|
| 2 |
+
|
| 3 |
+
for dataset in 'banking' 'oos' 'stackoverflow'
|
| 4 |
+
do
|
| 5 |
+
for known_cls_ratio in 0.25 0.5 0.75
|
| 6 |
+
do
|
| 7 |
+
for labeled_ratio in 1.0
|
| 8 |
+
do
|
| 9 |
+
for seed in 0 1 2 3 4 5 6 7 8 9
|
| 10 |
+
do
|
| 11 |
+
python run.py \
|
| 12 |
+
--dataset $dataset \
|
| 13 |
+
--method 'ADB' \
|
| 14 |
+
--known_cls_ratio $known_cls_ratio \
|
| 15 |
+
--labeled_ratio $labeled_ratio \
|
| 16 |
+
--seed $seed \
|
| 17 |
+
--backbone 'bert' \
|
| 18 |
+
--config_file_name 'ADB' \
|
| 19 |
+
--loss_fct 'CrossEntropyLoss' \
|
| 20 |
+
--gpu_id '0' \
|
| 21 |
+
--train \
|
| 22 |
+
--pretrain \
|
| 23 |
+
--results_file_name 'results_ADB.csv' \
|
| 24 |
+
--save_results \
|
| 25 |
+
--save_model
|
| 26 |
+
done
|
| 27 |
+
done
|
| 28 |
+
done
|
| 29 |
+
done
|
TEXTOIR-main/open_intent_detection/examples/run_ARPL.sh
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin bash
|
| 2 |
+
|
| 3 |
+
for dataset in 'stackoverflow'
|
| 4 |
+
do
|
| 5 |
+
for known_cls_ratio in 0.25 0.5 0.75
|
| 6 |
+
do
|
| 7 |
+
for labeled_ratio in 1.0 0.2 0.4 0.6 0.8
|
| 8 |
+
do
|
| 9 |
+
for seed in 0 1 2 3 4 5 6 7 8 9
|
| 10 |
+
do
|
| 11 |
+
python run.py \
|
| 12 |
+
--dataset $dataset \
|
| 13 |
+
--method 'ARPL' \
|
| 14 |
+
--known_cls_ratio $known_cls_ratio \
|
| 15 |
+
--labeled_ratio $labeled_ratio \
|
| 16 |
+
--seed $seed \
|
| 17 |
+
--backbone 'bert' \
|
| 18 |
+
--config_file_name 'ARPL' \
|
| 19 |
+
--pretrain \
|
| 20 |
+
--train \
|
| 21 |
+
--loss_fct 'ARPLoss' \
|
| 22 |
+
--gpu_id '0' \
|
| 23 |
+
--results_file_name 'results_ARPL.csv' \
|
| 24 |
+
--save_results
|
| 25 |
+
done
|
| 26 |
+
done
|
| 27 |
+
done
|
| 28 |
+
done
|
TEXTOIR-main/open_intent_detection/examples/run_DA-ADB.sh
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin bash
|
| 2 |
+
|
| 3 |
+
for dataset in 'banking' 'oos' 'stackoverflow'
|
| 4 |
+
do
|
| 5 |
+
for known_cls_ratio in 0.25 0.5 0.75
|
| 6 |
+
do
|
| 7 |
+
for labeled_ratio in 1.0
|
| 8 |
+
do
|
| 9 |
+
for seed in 0 1 2 3 4 5 6 7 8 9
|
| 10 |
+
do
|
| 11 |
+
python run.py \
|
| 12 |
+
--dataset $dataset \
|
| 13 |
+
--method 'DA-ADB' \
|
| 14 |
+
--known_cls_ratio $known_cls_ratio \
|
| 15 |
+
--labeled_ratio $labeled_ratio \
|
| 16 |
+
--seed $seed \
|
| 17 |
+
--backbone 'bert_disaware' \
|
| 18 |
+
--config_file_name 'DA-ADB' \
|
| 19 |
+
--loss_fct 'CrossEntropyLoss' \
|
| 20 |
+
--gpu_id '0' \
|
| 21 |
+
--train \
|
| 22 |
+
--pretrain \
|
| 23 |
+
--results_file_name 'results_DA-ADB.csv' \
|
| 24 |
+
--save_results
|
| 25 |
+
done
|
| 26 |
+
done
|
| 27 |
+
done
|
| 28 |
+
done
|
| 29 |
+
|