擅长:python、mysql、java
<p>这个问题措辞有点拙劣。我猜<code>pandas</code>转义字符串中的<code>\</code>会使<code>nltk.word_tokenize</code>混淆。<code>pandas.read_csv</code>只能使用一个分隔符(或regex,但我怀疑您是否希望这样做),因此它将始终以<code>"one line\nother line"</code>的形式读取文本列,并转义反斜杠以保留它。如果您想进一步解析和格式化它,可以使用转换器。下面是一个例子:</p>
<pre><code>import pandas as pd
import re
df = pd.read_csv(
"file.csv", converters={"text":lambda s: re.split("\\\\n| ", s)}
)
</code></pre>
<p>以上结果:</p>
^{pr2}$
<p><strong>编辑:</strong>如果需要使用<code>nltk</code>进行拆分(假设拆分取决于语言模型),则需要在传递到<code>word_tokenize</code>之前取消字符串的转义;请尝试如下操作:</p>
<pre><code>lambda s: word_tokenize(s.encode('utf-8').decode('unicode_escape')
</code></pre>
<p><strong>注意:</strong>查询中的匹配列表非常复杂,因此您可能希望通过如下方式更改lambda将其转换为元组:</p>
<pre><code>lambda s: tuple(re.split("\\\\n| ", s))
</code></pre>